【发布时间】:2014-03-17 08:38:39
【问题描述】:
所以我正在尝试编写一个程序,它将两个列表作为输入,然后将公共元素组合成一个新列表。问题是我的代码一直返回一个空列表。有谁知道我应该写什么来解决这个问题?到目前为止,这是我的代码:
def main():
a = list(input("Enter list one: "))
b = list(input("Enter list two: "))
newlist1 = intersection(a,b)
print(newlist1)
def intersection(a,b):
a = []
b = []
newlist = []
for i in range(len(a)):
for j in range(len(b)):
if a[i] == b[j]:
for k in range(len(newlist)):
if newlist[k] != a[i]:
newlist.append(a[i])
return newlist
main()
编辑:感谢 cmets 伙计们。我已经编辑了一些部分并对其进行了更改,但仍在努力。我只需要确保在列表输入中忽略逗号。到目前为止,这是我所拥有的:
def main():
a = list(input("Enter list one: "))
b = list(input("Enter list two: "))
for i in a:
a[i]=int(a[i])
for i in b:
b[i]=int(b[i])
newlist1 = intersection(a,b)
print(newlist1)
def intersection(a,b):
newlist = [0]
for i in a:
for j in b:
if a[i] == b[j]:
for k in newlist:
if k != a[i]:
newlist.append(a[i])
else:
continue
return newlist
【问题讨论】:
-
您在函数
intersection的开头定义a=[]和b=[]。当然,两个空列表的交集是空列表。 -
为什么不能使用集合推导? dict({i for i in a if i in b})
标签: python