简体   繁体   English

如何从元组列表中获取价值并创建新列表

[英]how to get value from a list of tuples and make a new list

I have the following: 我有以下内容:

[('first_name', u'Renier'), ('second_name', u''), ('surname', u'de Bruyn'), ('own_transport', u'True'), ('id_number', u'910920254081'), ('id_type', u'IDNumber'), ('id_nationality', u'ZA'), ('disabilities_list', u'Intellectual Disability'), ('disabilities_list', u'Memory Loss'), ('disabilities_list', u'Mental Illness'), ('disabilities_list', u'Physical Disability'), ('disabilities_list', u'Speech and Language Disorders'),...]

How would I get the values of these tuples and use, where there is a value disabilities_list , to create a new list? 我将如何得到这些元组和使用,那里是一个值的值disabilities_list ,创建一个新的列表?

I have tried: 我努力了:

 for k in arr:
        if k == "disabilities_list":
            print k # this only returns "disabilities_list" 5 times

Update: 更新:

arr is what is returned from a form, this is waht I get when I print arr : arr是从表单返回的内容,这是我print arr时得到的:

NestedMultiDict([('first_name', u'Renier'), ('second_name', u''), ('surname', u'de Bruyn'), ('race', u'Caucation'), ('own_transport', u'True'), ('id_number', u'9109205021082'), ('id_type', u'IDNumber'), ('id_nationality', u'ZA'), ('disabitity', u'True'), ('disabilities_list[]', u'Memory Loss'), ('disabilities_list[]', u'Mental Illness'), ('disabilities_list[]', u'Physical Disability'), ('disabilities_list[]', u'Speech and Language Disorders'), ('disabilities_list[]', u'Vision Loss and Blindness'), ('mobile_number', u'0828245092'), ('home_number', u'0317016554'), ('email', u'renierdbruyn@hotmail.com'), ('other_contact', u''), ('line1', u'2 Hamilton Road'), ('line2', u''), ('line3', u''), ('city_town', u'Durban'), ('province', u'GP'), ('postal_code', u'3610'), ('suburb', u'Ashley'), ('country', u'ZA'), ('notice_period', u'4 weeks'), ('for_position', u'Developer'), ('curr_renumeration', u'12.0'), ('expect_renumeration', u'123.0'), ('relocate', u'True')])

Use a list comprehantion : 使用列表理解

>>>arr = [('first_name', u'Renier'), ('second_name', u''), ('surname', u'de Bruyn'), ('own_transport', u'True'), ('id_number', u'910920254081'), ('id_type', u'IDNumber'), ('id_nationality', u'ZA'), ('disabilities_list', u'Intellectual Disability'), ('disabilities_list', u'Memory Loss'), ('disabilities_list', u'Mental Illness'), ('disabilities_list', u'Physical Disability'), ('disabilities_list', u'Speech and Language Disorders'),...]
>>>
>>>[k[1] for k in arr if k[0] == "disabilities_list[]"] 
[u'Intellectual Disability', u'Memory Loss', ...]

edit : updated, according to the updated question: 编辑 :更新,根据更新的问题:

>>>[item[1] for item in arr.items() if item[0] == "disabilities_list"]  #  will do, what you want
if k[0] == "disabilities_list":

Maybe this is what you want: 也许这就是您想要的:

>>> for k,v in arr.iteritems():
...     if k == 'disabilities_list':
...         print v

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM