【问题标题】:Print from specific elements in python tuple [duplicate]从python元组中的特定元素打印[重复]
【发布时间】:2018-09-07 05:25:16
【问题描述】:

我正在尝试从我的元组中打印index 1 的元素,例如4994 2993 100 20.5,但它会打印('dan', '2993')

b = (("ben","4994"),("dan","2993"),("Hans",100),("Frank",20.5))


print(b[1])

在这个网站上搜索过,提供的答案都没有给我解决这个问题的线索。

【问题讨论】:

  • 您的代码行为正确 - 正如您所说,它正在打印元组的第一个元素。

标签: python python-3.x tuples


【解决方案1】:

您可以在列表推导中使用解包:

b = (("ben","4994"),("dan","2993"),("Hans",100),("Frank",20.5))
new_b = [i for _, i in b]

输出:

['4994', '2993', 100, 20.5]

【讨论】:

    【解决方案2】:

    另一种列表理解方式:

    b = (("ben","4994"),("dan","2993"),("Hans",100),("Frank",20.5))
    new_b = [i[1] for i in b]
    # ['4994', '2993', 100, 20.5]
    

    【讨论】:

      【解决方案3】:
      b = (("ben","4994"),("dan","2993"),("Hans",100),("Frank",20.5))
      
      for item in b:
          print(item[1])
      

      在这种情况下,您尝试访问双项元组的第二个元素。使用切片将是:

      >>> b[0][1]
      

      你会得到输出>

      >>> '4994'
      

      如果您将此元组放入 for 循环中,第一个元素(我的代码中的项目)将是:("ben","4994") 并且当您 print(item[1]) 时,您可以访问第二级切片,即:循环第一次运行时的'4994',以此类推。

      【讨论】:

      • 虽然此代码可能会回答问题,但提供有关 如何 和/或 为什么 解决问题的附加上下文将改善答案的长期性价值。
      猜你喜欢
      • 2013-10-27
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 2012-06-09
      • 1970-01-01
      相关资源
      最近更新 更多