Python 如何从元组列表中获取值并创建新列表
我有以下资料:Python 如何从元组列表中获取值并创建新列表,python,list,tuples,Python,List,Tuples,我有以下资料: [('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'), ('
[('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'),...]
如何获取这些元组的值并在有值列表的情况下使用创建新列表
我试过:
for k in arr:
if k == "disabilities_list":
print k # this only returns "disabilities_list" 5 times
更新:
arr
是从表单返回的内容,这是我打印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')])
也许这就是你想要的:
>>> for k,v in arr.iteritems():
... if k == 'disabilities_list':
... print v
使用:
编辑:根据更新的问题进行更新:
>>>[item[1] for item in arr.items() if item[0] == "disabilities_list"] # will do, what you want
当我打印出来时,它会返回一个空列表
[]
。不应该,我自己已经检查过了。我在arr上运行了type(),它会返回以下内容:
。这就是为什么它对我不起作用吗?仍然返回空列表:/n因为你在“残疾列表”->“残疾列表[]”中添加了[]。更新的答案。你能告诉我们什么是arr
对象吗?看看我答案的更新
>>>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', ...]
>>>[item[1] for item in arr.items() if item[0] == "disabilities_list"] # will do, what you want