我正在学习python,正在学习字典。我写了以下字典:
Team={
('projectmanager','Asma'): 'Sara',
('ba','Richard'): 'Steve',
('tester','Asma'): 'Rob',
'developer1': 'Misbah',
'developer2': 'Mariam'
}
然后我写了以下代码:
^{pr2}$我得到的输出是:
Team => <class 'str'> e
Team => <class 'str'> d
Team => <class 'tuple'> i
Team => <class 'str'> m
Team => <class 'tuple'> b
Team => <class 'str'> s
Team => <class 'tuple'> p
Team => <class 'str'> e
Team => <class 'str'> a
我不明白为什么要打印所有非元组项的第一个字符。如果我想一想,k[0][0]
在我心目中的意思是给我字典的第一个元素,然后是第一个子元素。但是非元组单词没有子元素,所以输出应该是空的,不是吗?而且k[0][0]
应该打印元组中的整个第一个单词,例如'projectmanager'
,而不是第一个元组单词的第一个字符。我在理解k[0][0]
的意思和它在做什么的时候遗漏了什么?在
否,
k
是给定键值对的键。您正在迭代这些项,这些项是对:每个键值对被分配给名称}。在
k
和{假设您的字典中有两种不同类型的键,字符串和元组,您的}。在
type()
信息正好显示了这一点;您将为这些键打印一系列<class 'str'>
和{因此,如果
^{pr2}$k
是一个元组,那么k[0]
是该元组中的第一个元素,k[0][0]
是第一个元素的第一个字符:对于字符串,
k[0]
将是第一个字符。但单个字符也是一个字符串。长度为1的字符串,因此获取该字符串的第一个元素仍然是字符串,同样长度为1:你不会得到一个空值。在
考虑一下, 第一个case-key,k被设置为一个to-be元组。例如('projectmanager','Asma')。因此很明显k[0][0]会打印出p
第二种情况(更棘手的情况)当k被设置为字符串时,k[0]是字符串的第一个元素。因此k[0]是一个长度为1的字符串。做 k[0][0]将访问k[0]的第一个元素,它与k[0]是一个长度为1的字符串相同。例如,},},}
k
是{k[0]
是{k[0][0]
因此是{希望这有帮助,祝你好运
相关问题 更多 >
编程相关推荐