以下是字母:
root
我用这个列出了它:
letters='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
所以我有一个字符列表。
我需要对所有变量= 0进行声明。我写道:
chars=[]
for i in letters:
chars.append(i)
但是有一条错误消息,如下所示:
for i in chars:
chars[i]=0;
问题:如何声明这些多个变量?
答案 0 :(得分:2)
您可以使用tuples或dict的列表。一个简单的解决方案:
>>> 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}
原始代码的问题在于,chars
是list
(因为它是在此处创建的列表: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']