【问题标题】:Turn specific values of a list into variables将列表的特定值转换为变量
【发布时间】:2017-05-20 20:31:42
【问题描述】:

问题

我有一个清单,

['apples','oranges','peaches','pear']

我想让列表的前三项自动成为一个单独的变量,例如:

item1 = 'apples'
item2 = 'oranges'
item3 = 'peaches'

我不想要值 pear 的变量,因为它是列表中的第 4 项。

解决方案

我目前正在修改我的旧帖子,我决定修改这篇帖子。

这个问题的所有答案都是准确的并且工作得很好。但是,您可以通过使用它们的索引轻松获取列表中的特定项目,这在某些情况下会更好。

>>> list = ['apples','oranges','peaches','pear']
>>> list[0:3] #This displays items in the list in order from 0-3.
['apples', 'oranges', 'peaches']
>>> list[2] #Value is the 3rd item, as the numbers start from 0 and not 1
'peaches'

【问题讨论】:

  • 你的意思是item1, item2, item3 = itemlist ?
  • 正在将列表转换为单个变量
  • @khelwood 谢谢,那行得通。我认为这是将变量转换为列表。
  • 如果您的列表有 4 个以上的条目会怎样?还是 2,就此而言?

标签: python python-3.x tuples


【解决方案1】:

给定一个列表:

items = ['apples','oranges','peaches']

您可以使用以下方法将列表解压缩为三个变量:

item1,item2,item3 = items

【讨论】:

    【解决方案2】:

    你不应该使用列表类型,如果你假设一个固定的长度。只需使用元组或自定义数据结构即可。

    【讨论】:

    • /s/或自定义数据结构//
    • 我知道 python 并没有真正拥有它们(用于救援的类)并且命名元组也很烂,但是很好。
    • 嗯?元组是正确的答案(或者枚举可能)
    • 是的,对于具有 3 个属性的东西来说,它们是一个合理的选择。如果是 10,我宁愿给事物起名字。
    • 这就是为什么collections.namedtuple 是一件事;)
    【解决方案3】:

    正如其他人所建议的那样:

    var1, var2, var3 = list

    但这只有在列表中有三个项目时才有效。如果你有更多:

    var1, var2, var3 = list[0], list[1], list[2]

    【讨论】:

    • v1, v2, v3 = lst[:3],只要len(lst) >= 3
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多