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

Bla*_*man 1 python dictionary

我在python中循环,并且只有在字典中尚未存在的情况下才想将字符添加到字典中.

我怎样才能做到这一点?

mydic = {}

for x in range(100):
    ??
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 5

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

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

也就是说,只需检查not in而不是in.

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

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

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