在循环中,只有在不包含密钥时才添加到字典或列表或元组

时间:2010-08-14 00:12:21

标签: python dictionary

我在python中循环,只想在字典中没有密钥时才想添加一个字符。

我该怎么做?

mydic = {}

for x in range(100):
    ??

1 个答案:

答案 0 :(得分:5)

对于一个词典,它简单快捷:

for x in range(100):
  if x not in mydic:
    mydic[x] = x  # or whatever value you want

即,只需与not in而不是in核对。

这对词典很有用。对于列表,它将非常慢(二次);对于速度,你需要在循环之前添加一个辅助集(希望列表中的所有项都是可清除的),并在循环中检查并更新它。即:

auxset = set(mylist)
for x in range(100):
  if x not in auxset:
    auxset.add(x)
    mylist.append(x)  # or whatever

对于一个元组,当然不可能添加任何东西,或以任何其他方式修改它:元组是不可变的!当然你知道吗?!那么,为什么要问?