检查字符串是否在列表中,如果没有将其附加到该列表中

时间:2014-12-19 19:28:15

标签: python list append

我使用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)

2 个答案:

答案 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