无法使用这些python列表打印所需的输出
我希望我的源代码输出如下:无法使用这些python列表打印所需的输出,python,Python,我希望我的源代码输出如下: Lists: 1 3 4 2 1 2 1 3; 4 4 2 4 3 2 4 4 3 1 3 [2, 3] Lists : 1 1 2 3 4 5; 2 3 4 5 6 [] Lists : ; [] Lists: 我想写一个函数,它接受两个列表并返回两个列表中多次出现的所有元素,但最终我在这些列表中找到了公共元素。我的退货清单应该按升序排列,没有重复项 def occur_multiple(a, b): a_set = set(a
Lists: 1 3 4 2 1 2 1 3; 4 4 2 4 3 2 4 4 3 1 3
[2, 3]
Lists : 1 1 2 3 4 5; 2 3 4 5 6
[]
Lists : ;
[]
Lists:
我想写一个函数,它接受两个列表并返回两个列表中多次出现的所有元素,但最终我在这些列表中找到了公共元素。我的退货清单应该按升序排列,没有重复项
def occur_multiple(a, b):
a_set = set(a)
b_set = set(b)
# check length
if len(a_set.intersection(b_set)) > 0:
return (a_set.intersection(b_set))
else:
return ("no common elements")
while True:
original_string = input("Lists: ")
if not original_string:
exit()
first_split = original_string.split(';')
first_list, second_list = [elem.split(' ') for elem in first_split]
first_list.sort()
second_list.sort()
print(occur_multiple(first_list, second_list))
list的count函数可能对您的任务有帮助。我已经修改了您的代码,以便它通过交叉点集中的元素并检查两个列表中的计数是否都大于1
def occur_multiple(a, b):
a_set = set(a)
b_set = set(b)
# check length
ans_set = set()
c = a_set.intersection(b_set)
if len(c) > 0:
for i in c:
if a.count(i) > 1 and b.count(i) > 1:
ans_set.add(i)
return (sorted(list(ans_set)))
else:
return ("no common elements")
此外,您可能希望将列表输入更改为int。为了改进,您可能希望在字典中存储每个元素的计数,而不是多次读取列表。列表的计数函数可能对您的任务有所帮助。我已经修改了您的代码,以便它通过交叉点集中的元素并检查两个列表中的计数是否都大于1
def occur_multiple(a, b):
a_set = set(a)
b_set = set(b)
# check length
ans_set = set()
c = a_set.intersection(b_set)
if len(c) > 0:
for i in c:
if a.count(i) > 1 and b.count(i) > 1:
ans_set.add(i)
return (sorted(list(ans_set)))
else:
return ("no common elements")
此外,您可能希望将列表输入更改为int。为了改进,您可能希望在字典中存储每个元素的计数,而不是多次读取列表。使用NumPy函数
np.unique
和np.intersect1d
:
将numpy导入为np
定义我的乐趣(a,b):
val_1,count_1=np.unique(a,return_counts=True)#查找唯一元素并
val_2,count_2=np.unique(b,return_counts=True)#出现次数
val_1=val_1[计数_1>1]#保留发生的元素
val_2=val_2[计数_2>1]#不止一次
结果=np.intersect1d(val_1,val_2)#集合交点
返回列表(结果)#转换为列表
a=[1,3,4,2,1,2,1,3]
>>>b=[4,4,2,4,3,2,4,4,3,1,3]
>>>c=我的乐趣(a,b)
>>>印刷品(c)
[2, 3]
a=[1,1,2,3,4,5]
>>>b=[2,3,4,5,6]
>>>c=我的乐趣(a,b)
>>>印刷品(c)
[]
a=[-5,1,2,3,4,1,0,1,2,4,4,2,5]
>>>b=[1,3,4,5,-5,-5,1,4]
>>>c=我的乐趣(a,b)
>>>印刷品(c)
[-5, 1, 4]
使用NumPy函数
np.unique
和np.intersect1d
:
将numpy导入为np
定义我的乐趣(a,b):
val_1,count_1=np.unique(a,return_counts=True)#查找唯一元素并
val_2,count_2=np.unique(b,return_counts=True)#出现次数
val_1=val_1[计数_1>1]#保留发生的元素
val_2=val_2[计数_2>1]#不止一次
结果=np.intersect1d(val_1,val_2)#集合交点
返回列表(结果)#转换为列表
a=[1,3,4,2,1,2,1,3]
>>>b=[4,4,2,4,3,2,4,4,3,1,3]
>>>c=我的乐趣(a,b)
>>>印刷品(c)
[2, 3]
a=[1,1,2,3,4,5]
>>>b=[2,3,4,5,6]
>>>c=我的乐趣(a,b)
>>>印刷品(c)
[]
a=[-5,1,2,3,4,1,0,1,2,4,4,2,5]
>>>b=[1,3,4,5,-5,-5,1,4]
>>>c=我的乐趣(a,b)
>>>印刷品(c)
[-5, 1, 4]
附加问题预期结果。使用
set()。使用set()