如何修改给定的代码,使最终列表只包含每个字母的一份副本



这是代码:

word_list = ['cat','dog','rabbit']
letter_list = [ ]
fora_wordinword_list:`
fora_letterina_word:
letter_list.append(a_letter)
print(letter_list)

我将修改给定的代码,使最终列表只包含每个字母的一份副本。

['c','a','t','d','o','g','r','b','i']

我该怎么做?

itertools:使用chain.from_iterable

list(dict.fromkeys(chain.from_iterable(word_list)))

这在python 3.7+版本上也将维护元素的顺序。

Python集就是您所需要的。试试这个:

word_list = ["cat", "dog", "rabbit"]
print(list(set("".join(word_list))))

输出:

['g', 'r', 'd', 'o', 'i', 'c', 't', 'b', 'a']

警告:

集合不保留列表的原始顺序。

集合对象是不同可散列对象的无序集合。常见的用途包括成员身份测试、从序列中删除重复项,以及计算数学运算,如交集、并集、差分和对称差分。

但是,如果您真的有兴趣维护订单:

word_list = ["cat", "dog", "rabbit"]
result = []
for i in "".join(word_list):
if i not in result:
result.append(i)
print(result)

输出:

['c', 'a', 't', 'd', 'o', 'g', 'r', 'b', 'i']

希望这将有助于

word_list=["cat","dog","rabbit"]
print(list(set("".join(word_list))))

最好使用一个集合,调整您以前的代码来做到这一点:

word_list = ['cat','dog','rabbit']
letter_list = set()
for a_word in word_list:
for a_letter in a_word:
letter_list.add(a_letter)
print(list(letter_list))

你也可以聪明地使用一句话:

print(list(set("".join(word_list))))

如果你想保留订单而不导入任何东西,只需:

print(list({k: 1 for k in "".join(word_list)}))
final_output = []
for word in word_list:
for i in range( len(word) ):
final_output.append(sampleStr[i])

试试这个:(

您必须添加条件:

word_list = ['cat','dog','rabbit']
letter_list = [ ]
for word in word_list:`
for character in word:
if character not in letter_list:
letter_list.append(character)
print(letter_list)

在python中,set不是ordered。如果你真的很关心订单,那么你可以试试这种

word_list = ['cat','dog','rabbit']
letter_list = []
for i in "".join(word_list):
if i not in letter_list:
letter_list.append(i)
>>> letter_list
['c','a','t','d','o','g','r','b','i']

最新更新