python - 从元组中提取第一个元素

我有一个元组数组,并试图提取第一个元素,但它给出了一些随机输出。


import operator


c_details=[('id', 'integer', None, 32, 0), ('name', 'character varying', 10, None, None)]

for mapping in c_details:

        source_name=map(operator.itemgetter(0), mapping)

        print(source_name)


OUTPUT:

<map object at 0x01959358>

<map object at 0x01959148>

然后我试了这个。


source_name=list(map(operator.itemgetter(0), mapping))


output:

Traceback (most recent call last):

  File "c:/Users/rbhuv/Desktop/code/bqshift.py", line 26, in <module>

    source_name=list(map(operator.itemgetter(0), mapping))

TypeError: 'NoneType' object is not subscriptable

有人可以帮我解决这个问题吗?(它的蟒蛇3.8)


慕雪6442864
浏览 175回答 4
4回答

沧海一幻觉

它不会给你一些随机输出,而是告诉你map(...)返回一个generator。您可以改用简单的列表理解:c_details = [('id', 'integer', None, 32, 0), ('name', 'character varying', 10, None, None)]lst = [tpl[0] for tpl in c_details]print(lst)哪个产量['id', 'name']请继续阅读有关生成器的内容(例如此处),它们在Python.

慕桂英4014372

每个元组的第一个元素很简单:mapping[0]

莫回无

只需将元组中的每个元素分别赋值给新变量,如下所示:c_details=[('id', 'integer', None, 32, 0), ('name', 'character varying', 10, None, None)]for entry in c_details:&nbsp; ele1, ele2, ele3, ele4, ele5 = entry&nbsp; print(ele1)

一只名叫tom的猫

你如何改变你的代码是这样的:import operatorc_details=[('id', 'integer', None, 32, 0), ('name', 'character varying', 10, None, None)]for mapping in c_details:&nbsp; &nbsp; &nbsp; &nbsp; print(mapping[0])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python