如何在python中声明许多变量

时间:2018-08-17 00:42:51

标签: python

以下是字母:

root

我用这个列出了它:

letters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'

所以我有一个字符列表。

我需要对所有变量= 0进行声明。我写道:

chars=[]
for i in letters:
  chars.append(i)

但是有一条错误消息,如下所示:

for i in chars:
  chars[i]=0;

问题:如何声明这些多个变量?

5 个答案:

答案 0 :(得分:2)

您可以使用tuplesdict的列表。一个简单的解决方案:

>>> import string
>>> letters = string.ascii_uppercase + string.ascii_lowercase + string.digits
>>> chars = dict.fromkeys(letters , 0)
>>> chars
>>> {...'a': 0, 'b': 0 ....}

要使用元组列表:

>>> list(chars.items())
>>> [...('a',0), ('b', 0)...]

答案 1 :(得分:1)

解决方案

因此,简而言之,您想要的是为输入中的每个字符提供character -> 0的字典(映射)。

这是这样做的方法:

letters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
chars = {char: 0 for char in letters}

问题

原始代码的问题在于,charslist(因为它是在此处创建的列表:chars=[]),并且字符用作其索引。

因此,第一次执行chars[i]=0;(顺便说一句,这里不需要;),i'A',并且chars['A']=0产生了错误。

答案 2 :(得分:1)

list理解的替代方法是使用map

In [841]: letters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'

In [842]: chars = list(map(lambda l: 0, letters))

或者如果您想要dict就像其他答案一样

In [844]: dict(map(lambda l: (l, 0), letters))

我通常发现list / dict的理解既更快又更具可读性(至少对我而言)。这只是一种不同的方法

答案 3 :(得分:0)

如果要创建长度为字符串0的{​​{1}}列表。

letters

答案 4 :(得分:0)

我想你是说这个:

letters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'

# dict comprehension
dd = { x:0 for x in list(letters)}; dd
{'A': 0,
 'B': 0,
 'C': 0,
 'D': 0,
 'E': 0,
 'F': 0,
 'G': 0,
 'H': 0,
 'I': 0,
 'J': 0,
 'K': 0,
 'L': 0,
 'M': 0,
 'N': 0,
 'O': 0,
 'P': 0,
 'Q': 0,
 'R': 0,
 'S': 0,
 'T': 0,
 'U': 0,
 'V': 0,
 'W': 0,
 'X': 0,
 'Y': 0,
 'Z': 0,
 'a': 0,
 'b': 0,
 'c': 0,
 'd': 0,
 'e': 0,
 'f': 0,
 'g': 0,
 'h': 0,
 'i': 0,
 'j': 0,
 'k': 0,
 'l': 0,
 'm': 0,
 'n': 0,
 'o': 0,
 'p': 0,
 'q': 0,
 'r': 0,
 's': 0,
 't': 0,
 'u': 0,
 'v': 0,
 'w': 0,
 'x': 0,
 'y': 0,
 'z': 0,
 '0': 0,
 '1': 0,
 '2': 0,
 '3': 0,
 '4': 0,
 '5': 0,
 '6': 0,
 '7': 0,
 '8': 0,
 '9': 0}

更新:

dd['A'] = 13
dd
dd{'A': 13,
 'B': 0,
 'C': 0,
 'D': 0,
 'E': 0,
 'F': 0,
 'G': 0,
 'H': 0,
 'I': 0,

或者

list(letters) 
['A',
 'B',
 'C',
 'D',
 'E',
 'F',
 'G',
 'H',
 'I',
 'J',
 'K',
 'L',
 'M',
 'N',
 'O',
 'P',
 'Q',
 'R',
 'S',
 'T',
 'U',
 'V',
 'W',
 'X',
 'Y',
 'Z',
 'a',
 'b',
 'c',
 'd',
 'e',
 'f',
 'g',
 'h',
 'i',
 'j',
 'k',
 'l',
 'm',
 'n',
 'o',
 'p',
 'q',
 'r',
 's',
 't',
 'u',
 'v',
 'w',
 'x',
 'y',
 'z',
 '0',
 '1',
 '2',
 '3',
 '4',
 '5',
 '6',
 '7',
 '8',
 '9']