Python字典打印第一个单词行为

2024-06-16 11:35:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习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]的意思和它在做什么的时候遗漏了什么?在


Tags: richard元素字典字符单词teamclasssteve
2条回答

If I think about it k[0][0] in my mind means get me the first element of the dictionary then the first sub element.

否,k是给定键值对的键。您正在迭代这些项,这些项是对:

for k,v in Team.items():

每个键值对被分配给名称k和{}。在

假设您的字典中有两种不同类型的键,字符串和元组,您的type()信息正好显示了这一点;您将为这些键打印一系列<class 'str'>和{}。在

因此,如果k是一个元组,那么k[0]是该元组中的第一个元素,k[0][0]是第一个元素的第一个字符:

^{pr2}$

对于字符串,k[0]将是第一个字符。但单个字符也是一个字符串。长度为1的字符串,因此获取该字符串的第一个元素仍然是字符串,同样长度为1:

>>> k = 'developer1'
>>> type(k)
<class 'str'>
>>> k[0]
'd'
>>> type(k[0])
<class 'str'>
>>> len(k[0])
1
>>> k[0][0]
'd'

你不会得到一个空值。在

考虑一下, 第一个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]因此是{}

希望这有帮助,祝你好运

相关问题 更多 >