在python3中打印每两个字母对

问题描述

我是python的新手,我被困在一个练习中,告诉我提供一个脚本,该脚本打印每个可能的两个字母对,每个字母都是小写,一行一行,按字母顺序排列,这是我最接近的东西可以做到

import string 
x=string.ascii_lowercase
y=list(x)
for i in y:
    print(i,end='')
    for g in y:
        print(g)

解决方法

每对中的第一个字母只打印一次。

from string import ascii_lowercase as lowercase_letters

for first_letter in lowercase_letters:
    for second_letter in lowercase_letters:
        print(first_letter + second_letter)

另外:

  • 您不需要将字符串转换为列表,可以循环遍历字符串。实际上,list(some_string)就是这样工作的!
  • 我使用了更具可读性的变量名。
  • 使用from ... import意味着您不需要进行其他分配。
,

尝试此代码,它将按字母顺序打印

您已经研究了ASCII码,所以它的作用是在包含所有字母的97至122之间循环,然后将它们连接起来。

for firstchar in range(97,123):
    for secondchar in range(97,123):
          print(chr(firstchar) + chr(secondchar))
,

您需要在第二个for循环中打印i字母

import string 
    x=string.ascii_lowercase
    y=list(x)
    for i in y:
        for g in y:
            print(i,g)

因此,程序将遍历第一个循环中的每个字母,然后依次打印整个字母,作为第二个循环中的第二个字母

,
l = [['Drama'],['Drama','Horror','Thriller'],['Drama'],['Children','Drama'],['Comedy','Drama','Thriller']]

# map() to join each member with `_`
#if you want it in form [[],[],[]]
test =  list(map(lambda x: ['_'.join(x)],l)) 
#or if in list ['','','']
#test = list(map(lambda x: '_'.join(x),l)) 
print(test) 

如果给出单词列表。那么这是一种可能的方法

,

如果使用字符串模块,这是非常简单的任务:

import string

for firstchar in string.ascii_lowercase:
    for secondchar in string.ascii_lowercase:
        print(firstchar + secondchar)