Python-lis中的命名元素

2024-05-15 12:04:09 发布

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

在PHP中,我可以在如下列表中命名元素:

<?php
    list($name,$address,$home) = array("Alex","Taiwan","Vietnam");
    echo $address."\n";
?>

输出:台湾

在Python中它能起到同样的作用吗?我厌倦了这样做:

^{pr2}$

Tags: nameecho元素home列表addressarray命名
3条回答

模块collections中的名称元组也有帮助:

>>> import collections
>>> Data = collections.namedtuple("Data", "name address home")
>>> Data('Alex', 'Taiwan', 'Vietnam')
>>> d = Data('Alex', 'Taiwan', 'Vietnam')
>>> d.name
'Alex'
>>> d.address
'Taiwan'
>>> d.home
'Vietnam'

你可以使用解包。在

name, city, country = ["Alex","Taiwan","Vietnam"]
print name

在Python3中,使用*运算符可以做更多的事情。在

^{pr2}$

请参考PEP 448 -- Additional Unpacking Generalizations以获得更多的概括。在

您可以创建自定义namedtuple数据类型:

from collections import namedtuple

# create a new data type (internally it defines a class ContactData):
ContactData = namedtuple("ContactData", ["name", "city", "state"])

# create an object as instance of our new data type
alex = ContactData("Alex", "Taiwan", "Vietnam")

# access our new object
print(alex)             # output: ContactData(name='Alex', city='Taiwan', state='Vietnam')
print(alex.city)        # output: Taiwan
print(alex[1])          # output: Taiwan
alex[0] = "Alexander"   # set new value
print(alex.name)        # output: Alexander

相关问题 更多 >