我使用Python 2.7编写了以下代码,在列表'de_nums'中搜索列表'dems'中每个元素的前三个字符,如果它们不存在则附加它们。当我运行代码时,列表'dem_nums'将返回为空。我已经尝试使用这篇文章来帮助(check if a number already exist in a list in python)但是使用这些信息并没有解决问题。
dems = ["083c15", "083c16", "083f01", "083f02"]
dem_nums = []
for dem in dems:
dem_num = dem[0:3]
if dem_num not in dem_nums:
dem_nums.append(dem_num)
答案 0 :(得分:0)
您的代码没有问题,但作为一种更优雅的方式,您可以在set
函数中使用生成器:
>>> set(i[:3] for i in dems)
set(['083'])
由于'set'对象不支持索引元素,因此您可以将其转换为列表!
my_list=list(set(i[:3] for i in dems))
您的代码:
>>> dem_nums = []
>>> for dem in dems:
... dem_num = dem[0:3]
... if dem_num not in dem_nums:
... dem_nums.append(dem_num)
...
>>> dem_nums
['083']
答案 1 :(得分:0)
dems = ["083c15", "083c16", "083f01", "083f02","084f56"]
dem_nums = []
for dem in dems:
dem_num_ = dem[0:3]
if dem_num_ not in dem_nums:
dem_nums.append(dem_num_)
print dem_nums
它在我的机器上工作正常,输出是:
[' 083',' 084']
给定的dems