因此,举一个没有任何代码的粗略示例,我很好奇我如何能够弄清楚这两个列表的共同点。
例子:
listA = ['a', 'b', 'c']
listB = ['a', 'h', 'c']
我希望能够返回:
['a', 'c']
怎么会这样?
可能带有可变字符串,例如:
john = 'I love yellow and green'
mary = 'I love yellow and red'
并返回:
'I love yellow and'
因此,举一个没有任何代码的粗略示例,我很好奇我如何能够弄清楚这两个列表的共同点。
例子:
listA = ['a', 'b', 'c']
listB = ['a', 'h', 'c']
我希望能够返回:
['a', 'c']
怎么会这样?
可能带有可变字符串,例如:
john = 'I love yellow and green'
mary = 'I love yellow and red'
并返回:
'I love yellow and'
为此使用设置交集:
list(set(listA) & set(listB))
给出:
['a', 'c']
请注意,由于我们正在处理集合,因此这可能不会保留顺序:
' '.join(list(set(john.split()) & set(mary.split())))
'I and love yellow'
用于join()
将结果列表转换为字符串。
--
对于您在下面的示例/评论,这将保留顺序(受@DSM 评论的启发)
' '.join([j for j, m in zip(john.split(), mary.split()) if j==m])
'I love yellow and'
对于列表长度不同的情况,其结果在下面的评论中指定:
aa = ['a', 'b', 'c']
bb = ['c', 'b', 'd', 'a']
[a for a, b in zip(aa, bb) if a==b]
['b']
如果两个列表的长度相同,则可以进行并排迭代,如下所示:
list_common = []
for a, b in zip(list_a, list_b):
if a == b:
list_common.append(a)
将它们作为集合相交:
set(listA) & set(listB)
我想这就是你想问我的任何事情我会尽力回答
listA = ['a', 'b', 'c']
listB = ['a', 'h', 'c']
new1=[]
for a in listA:
if a in listB:
new1.append(a)
john = 'I love yellow and green'
mary = 'I love yellow and red'
j=john.split()
m=mary.split()
new2 = []
for a in j:
if a in m:
new2.append(a)
x = " ".join(new2)
print(x)