【发布时间】:2021-05-21 00:25:53
【问题描述】:
我正在处理一项任务,并且部分完成,但坚持如何将输出作为单个列表与字符串进行比较。显然我正在学习,非常感谢您的帮助或建议!
这是评估: 计算两个列表的笛卡尔积 AxB。每个列表的数字不超过 10 个。
例如,如果用户提供了两个输入列表: A = [1,2] B = [3,4]
那么笛卡尔积输出应该是: AxB = [(1,3),(1,4),(2,3),(2,4)]
这是我目前所写的:
import itertools
input_A = []
input_B = []
input_A = input('Enter first 2 - 10 characters: ')
input_B = input('Enter second 2 - 10 characters: ')
for combination in itertools.product(input_A, input_B):
print('AxB = ', [combination])
这是我的输出:
Enter first 2 - 10 characters: 12 #I don't get the the below output when using comma separated items
Enter second 2 - 10 characters: 34
AxB = [('1', '3')]
AxB = [('1', '4')]
AxB = [('2', '3')]
AxB = [('2', '4')]
【问题讨论】:
-
您看到这个输出是因为
input()函数总是返回一个字符串。顺便说一句:您确定您的任务实际上是要求您接受用户输入吗?我还假设由于这是家庭作业,您的教授可能希望您编写自己的笛卡尔积函数。 -
澄清一下:如果您输入
12为input_A,那么input_A == "12"。如果您改为输入1,2,则输入input_A == "1,2"。如果您确实需要接受用户的输入,那么您将需要编写一些逻辑来确定输入是数字还是字母,以及您作为程序员是否要强制使用逗号分隔值。 -
这位教授的问题是,即使它没有明确表示获取用户输入,如果你不这样做,他也会给你打分,所以我不得不假设他想要一个......我确实尝试输入 1, 2,但输出包含“,”作为项目而不是分隔符。感谢您的建议,感谢您的帮助。
-
对,那是因为您没有逻辑来根据逗号字符分隔输入。因此,为什么你会得到一个笛卡尔积,其中
","被视为一个元素。 -
另外,我再次感觉到您的教授希望您编写自己的笛卡尔积函数,而不是使用内置版本。
标签: python python-3.x user-input cartesian-product