Python列表迭代和连接

时间:2016-04-12 20:43:51

标签: python string list

我正在尝试编写一个函数,返回一个看起来像这样的字符串(2,3 | 5,6 | 8,9),但我的函数on返回一个空字符串

numbers = [(4,5,6),(1,2,3),(7,8,9)]
def get_numbers(x):
  mystring = ""
  x = sorted(x)
  for n in x:
    if mystring is not "":
      mystring+="|"
    mystring+",".join(str(z) for z in n[1:])
  return mystring

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

有一个小虫子。您输入了mystring=而不是mystring +=

numbers = [(4,5,6),(1,2,3),(7,8,9)]
def get_numbers(x):
  mystring = ""
  x = sorted(x)
  for n in x:
    if mystring is not "":
      mystring+="|"
    mystring+=",".join(str(z) for z in n[1:])
  return mystring

答案 1 :(得分:1)

加入用于更改列表,将元组用于字符串

values = map(lambda x: x[1:], sorted(numbers))

print "|".join([",".join(map(str, value)) for value in values])

答案 2 :(得分:0)

只是为了好玩,一个丑陋的衬垫; - )

'(' + '|'.join([','.join(map(str, l[1:])) for l in numbers]) + ')'

我还在你写的时候添加了括号,你想要一个看起来像这样的字符串。

相关问题