我想知道为什么这段代码:
wordlist = ['cat','dog','rabbit']
letterlist=[]
for aword in wordlist:
for aletter in aword:
if aletter not in letterlist:
letterlist.append(aletter)
print(letterlist)
打印[' c',' a'' t',' d',' o', ' g'' r',' b','我']
这段代码:
wordlist = ['cat','dog','rabbit']
letterlist=[]
for aword in wordlist:
for aletter in aword:
letterlist.append(aletter)
print(letterlist)
打印[' c',' a'' t',' d',' o', ''',' a','''''' i& #39;,' t']
我不明白代码是如何计算出来的,并且没有拼出所有的“兔子”和“兔子”。和/或为什么它拼写出来'' b''我'?任何人都知道发生了什么?
答案 0 :(得分:1)
您正在使用此letterlist
块向if
添加每个唯一的字母:
if aletter not in letterlist:
letterlist.append(aletter)
如果已经看到该字母,则不会再次附加该字母。这意味着您第二次看到a
('兔子'),第二次b
('兔子')和第二次和第三次看到t
,它们未添加到列表中。
答案 1 :(得分:0)
代码if aletter not in letterlist:
的这一部分检查该字母是否已添加到列表中。如果是的话,你不会再添加它。
所以基本上你不会添加任何重复的字符。这就是输出为['c', 'a', 't', 'd', 'o', 'g', 'r', 'b', 'i']
的原因。那里没有重复的信件。
第二段代码只是迭代整个列表,无论如何都附加到letterlist
。这就是为什么添加所有字母的原因,结果会得到['c', 'a', 't', 'd', 'o', 'g', 'r', 'a', 'b', 'b', 'i', 't']
。