采用两个列表并输出列表之间相似性的程序
Program that takes two lists and outputs similarity between lists
我正在编写一个程序,用户在其中输入两个列表(数字)的数据,然后程序从两个列表中输出匹配的数字。
我已经编写了一些代码来手动实现这一点,但我需要实现一种用户可以自己输入数字而不是硬编码的方式。
请参阅以下所需输出:
List 1: 1 2 3 4
List 2: 4 2 0 0
output: [4 , 2 ]
我的波纹管代码实现了预期的结果,但不是预期的结果,我的代码从列表中获取值并计算交集,并打印结果但与上面概述的不同。
a = [1,2,3,4]
b = [4,2,0,0]
c = set(a) & set(b)
print('Output:',c)
能否请您帮忙解释一下这是如何实现的。谢谢
如果您需要保持列表中的顺序,您可以直接在列表上工作并使用简单的列表理解:
a = [1,2,3,4]
b = [4,2,0,0]
c = [el for el in b if el in a]
print('Output:',c)
输出:
[4, 2]
编辑 1. 如果你想让用户一个一个地输入数字,你可以这样做:
n = int(input('Provide the amount of numbers for each list: '))
a = [int(input(f'List a, element {i+1}: ')) for i in range(n)]
b = [int(input(f'List b, element {i+1}: ')) for i in range(n)]
c = [el for el in b if el in a]
print('Output:',c)
对于更多变体,您可以将其用作基线并添加类型检查或可变长度数组(通过让用户输入两个初始数字 n 和 m)等。
编辑 2. 如果您希望用户直接输入列表,您可以这样做:
a = map(int, input('List 1: ').strip().split()) # e.g. "1 2 3 4"
b = map(int, input('List 2: ').strip().split()) # e.g. "4 2 0 0"
c = [el for el in b if el in a]
print('Output:',c)
我不推荐此解决方案,因为它更容易出现用户输入错误。
我正在编写一个程序,用户在其中输入两个列表(数字)的数据,然后程序从两个列表中输出匹配的数字。 我已经编写了一些代码来手动实现这一点,但我需要实现一种用户可以自己输入数字而不是硬编码的方式。
请参阅以下所需输出:
List 1: 1 2 3 4
List 2: 4 2 0 0
output: [4 , 2 ]
我的波纹管代码实现了预期的结果,但不是预期的结果,我的代码从列表中获取值并计算交集,并打印结果但与上面概述的不同。
a = [1,2,3,4]
b = [4,2,0,0]
c = set(a) & set(b)
print('Output:',c)
能否请您帮忙解释一下这是如何实现的。谢谢
如果您需要保持列表中的顺序,您可以直接在列表上工作并使用简单的列表理解:
a = [1,2,3,4]
b = [4,2,0,0]
c = [el for el in b if el in a]
print('Output:',c)
输出:
[4, 2]
编辑 1. 如果你想让用户一个一个地输入数字,你可以这样做:
n = int(input('Provide the amount of numbers for each list: '))
a = [int(input(f'List a, element {i+1}: ')) for i in range(n)]
b = [int(input(f'List b, element {i+1}: ')) for i in range(n)]
c = [el for el in b if el in a]
print('Output:',c)
对于更多变体,您可以将其用作基线并添加类型检查或可变长度数组(通过让用户输入两个初始数字 n 和 m)等。
编辑 2. 如果您希望用户直接输入列表,您可以这样做:
a = map(int, input('List 1: ').strip().split()) # e.g. "1 2 3 4"
b = map(int, input('List 2: ').strip().split()) # e.g. "4 2 0 0"
c = [el for el in b if el in a]
print('Output:',c)
我不推荐此解决方案,因为它更容易出现用户输入错误。