[英]In Python, how do you create a 2D list from a file and assign a type to each item in each sublist?
[英]Comparing 2D list item with each of the rest in python
print(data) [['1', '2'], ['1', '3'], ['2', '4'], ['2', '5'], ['2', '6'], ['3', '4'], ['2', '1'], ['3', '5'], ['4', '6'], ['5', '6']]
我的意思是查找是否有相同的项目 2 次。 不完全一样,但在我的情况下是:
data[0]是['1', '2']和data[6]是['2', '1'] 。 我需要删除像这样的“重复项”。
只是想知道是否有一些 function 用于此。
谢谢你们。
简单的列表理解:
data = [list(i) for i in set([tuple(sorted(i)) for i in data])]
print(data)
我喜欢@Abhinav Mathur 的解决方案
但是如果你想保留列表顺序和格式,解决方案可能会更详细一些
像这样:
data = [['1', '2'], ['1', '3'],
['2', '4'], ['2', '5'],
['2', '6'], ['3', '4'],
['2', '1'], ['3', '5'],
['5', '3'], ['4', '6'],
['5', '6'], ['1', '2'],
['5', '3']]
len_data = len(data)
i=0
while i < len_data:
curr_value = sorted(data[i])
data[i+1:] = [val for val in data[i+1:] if sorted(val) != curr_value]
i+=1
len_data = len(data)
print(data)
我修改了列表,添加了更多重复项和不同的值来演示它是如何工作的
结果
[['1', '2'], ['1', '3'], ['2', '4'], ['2', '5'], ['2', '6'], ['3', '4'], ['3', '5'], ['4', '6'], ['5', '6']]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.