2016-04-22 2 views
1

В PHP, я назвал элемент в списке, как:именования элементов в списке Python

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

Выход: Тайвань

Может ли он работать так же в Python? Я устал делать:

list = ["Alex","Taiwan","Vietnam"] 
print list[1] 
+0

[namedtuple] (https: // Docs. python.org/3/library/collections.html#collections.namedtuple) – syntonym

ответ

5

Вы можете использовать распаковку.

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

В Python3, вы можете сделать гораздо больше, используя оператор *.

a, *b, c = [1, 2, 3, 4, 5] # a = 1, b = [2, 3, 4], c = 5 

См. PEP 448 -- Additional Unpacking Generalizations для получения дополнительных обобщений.

+1

избил меня на пару минут :-) – scottiedoo

+0

Большое вам спасибо – AlexPham

0

Это звучит, как вы на самом деле хотите, словарь:

d = {'name': 'Alex', 'address': 'Taiwan', 'home': 'Vietnam'} 
print d['address'] 

Если вам нужен упорядоченный список, который вы можете сделать упорядоченный Dict и вызывать значения() на нем.

import collections 
d = collections.OrderedDict({'name': 'Alex', 'address': 'Taiwan', 'home': 'Vietnam'}) 
d.values() 
2

имя кортежа в модуле 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' 
1

Вы можете создать пользовательский тип данных 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 
Смежные вопросы