检查列表是否与tup完全相同

2024-04-25 04:14:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图制作一个程序,如果用户输入了与给定元组完全相同的数据,它将打印('available'),否则,它将附加新数据。但我的程序不会打印“可用”,即使我也输入了完全相同的数据。你知道吗

data = ['Karma', 19, 'e', 'Kunugigaoka JH']
user = [input('name:'), int(input('age: ')), input('section: '), input('school: ')]
if user in data: 
    print('still available')
else: 
    data = data.append(user), print(data, 'your new data is now added')

哪里的代码不对?它是if语句中的“in”吗?如何修复它?谢谢


Tags: 数据用户namein程序inputdataif
3条回答

This answer is completly based on the title of this question:

假设你有:

>>>a = [1,2,3] #REMEMBER for this method to work the list and tuple should be in exact oder
>>>b = (1,2,3)

>>>all( [i==j for i,j in zip(a,b)] )
True
>>>b = (3,2,1) #Here though a and b have the same elements but not the same order
>>>all( [i==j for i,j in zip(a,b)] )
Flase

in将检查数据的每个元素。所以在这种情况下:

data = ['Karma', 19, 'e', 'Kunugigaoka JH']

它将检查'Karma',然后19,然后。。。你知道吗

相反,您应该尝试:

data = [['Karma', 19, 'e', 'Kunugigaoka JH']]

这是一个列表,在一个列表中。现在in要检查的第一件事是:

['Karma', 19, 'e', 'Kunugigaoka JH']

下面是代码的运行版本。你知道吗

data = [['Karma', 19, 'e', 'Kunugigaoka JH']]
user = [input('name:'), int(input('age: ')), input('section: '), input('school: ')]

if user in data:
    print('still available')
else:
    data.append(user)
    print(user, 'your new data is now added')

解释

  • 您的数据格式必须是列表的列表,以便您的程序按预期工作。你知道吗
  • list.appendreturn任何东西,所以不要赋值给变量。你知道吗

相关问题 更多 >