【问题标题】:How to print out specific values from a list如何从列表中打印出特定值
【发布时间】:2012-06-28 14:18:31
【问题描述】:

嘿,这可能是一个简单的问题,但我已经被它难住了一段时间 =/

我有一个字符串 A:

A = ('A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5')

还有一个对应的列表B,显示字符串A内括号内每个值的准确位置:

B = [12 13 14 15 16 17 18 19 20 21 22 23]

我想创建一个新列表,列表 C,它打印字符串 A 括号内的值,字符串 A 由列表 B 中的数字定义。

感谢您的帮助!

编辑: 我的目标是创建一个仅打印内括号内内容的列表,如下所示:

C = ('C:0.3,D:0.4')

然后我将在逗号处拆分,并将相应的 2 个字符串输入到我定义的另一个函数中,但现在,我只需要列表 C

【问题讨论】:

  • 哪个python版本支持这样的列表B = [12 13 14 15 16 17 18 19 20 21 22 23] ??
  • 请显示您的预期结果。您所说的问题根本没有意义。
  • @Sean 为什么字符串 A 在 () 内?
  • @Sean 请参阅下面我编辑的解决方案,但B 在获取('C:0.3,D:0.4') 时有什么用?

标签: python string list printing parentheses


【解决方案1】:
>>> A = ('A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5')
>>> B = [12 ,13, 14 ,15, 16, 17, 18, 19 ,20 ,21, 22, 23]
>>> C=[A[x] for x in B]
>>> C
['(', 'C', ':', '0', '.', '3', ',', 'D', ':', '0', '.', '4']

编辑:

>>> A = ('A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5')
>>> C=A[A.find('('):A.find(')')+1]
>>> C
'(C:0.3,D:0.4)'

【讨论】:

  • 注意语法问题。 A 的定义有多余的括号,使它看起来像一个单元素元组,而列表 B 缺少逗号,这意味着它会引发语法错误。
  • 啊,谢谢,这就是我想要的,我的实际列表 A 和 B 在我的代码中并不像 A = '', B = '' 那样容易定义,我只是简化了它让我的问题更容易。
【解决方案2】:

一个简单的列表推导可以解决这个问题:

C = [A[i] for i in B]

【讨论】:

    【解决方案3】:

    假设B确实是一个列表,

    看来你真的只需要B[0]B[-1]就可以了:

    print A[B[0]:B[-1]+1]
    

    或者作为一个列表:

    list_of_chars=list(A[B[0]:B[-1]+1])
    

    如果在任何时候,B 不是连续的(如果 B 也是连续的也可以):

    list_of_chars=[A[i] for i in B]
    

    会给你字符列表...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-19
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 2022-07-12
      • 1970-01-01
      • 1970-01-01
      • 2014-01-03
      相关资源
      最近更新 更多