【发布时间】:2016-03-03 12:07:34
【问题描述】:
我正在尝试使用列表推导生成一个新列表,该列表由从 list1 中提取的一个字母直接后跟(在冒号之后)后跟 list2 中以该特定字母开头的单词。我设法使用嵌套的 for 循环对其进行编码,如下所示:
list1=["A","B"]
list2=["Apple","Banana","Balloon","Boxer","Crayons","Elephant"]
newlist=[]
for i in list1:
newlist.append(i+":")
for j in list2:
if j[0]==i:
newlist[-1]+=j+","
产生预期结果:['A:Apple,', 'B:Banana,Balloon,Boxer,']
尝试使用列表推导同样的方法,我想出了以下内容:
list1=["A","B"]
list2=["Apple","Banana","Balloon","Boxer","Crayons","Elephant"]
newlist=[i+":"+j+"," for i in list1 for j in list2 if i==j[0]]
导致:['A:Apple,', 'B:Banana,', 'B:Balloon,', 'B:Boxer,']
每次找到具有该首字母的单词时,都会在newlist 中创建一个新项目,而我的意图是每个字母都有一个项目。
有没有办法编辑列表理解代码以获得与使用嵌套 for 循环相同的结果?
【问题讨论】:
标签: python list for-loop nested list-comprehension