非常简单和快速的问题。以这个列表为例:
a = ['hello1', 'hello2', 'hello3']
','.join(a)
我想在列表的最后一个元素之前使用“和”而不是逗号。所以我会得到:
你好 1、你好 2 和你好 3
代替....
你好 1 你好 2 你好 3
有没有办法做到这一点.join()?我知道我可以在列表中输入这样的简单示例,但我在实际程序中需要的列表来自用户输入。
非常简单和快速的问题。以这个列表为例:
a = ['hello1', 'hello2', 'hello3']
','.join(a)
我想在列表的最后一个元素之前使用“和”而不是逗号。所以我会得到:
你好 1、你好 2 和你好 3
代替....
你好 1 你好 2 你好 3
有没有办法做到这一点.join()?我知道我可以在列表中输入这样的简单示例,但我在实际程序中需要的列表来自用户输入。
本质上,您想分别操作列表的两部分,第一部分由除最后一个字符串之外的所有内容组成,另一部分仅由最后一个组成。
def my_func(lst):
    return ', '.join(lst[:-1])+' and '+lst[-1]
或使用 lambda:
f = lambda x: ', '.join(x[:-1]) + ' and '+x[-1]
或者如果你只想让它运行一次:
result = ', '.join(a[:-1]) + ' and ' + a[-1]
您需要将小列表作为特殊情况处理:
def my_function(a):
    if a == []:
        return ""
    elif len(a) == 1:
        return a[0]
    else:
        return ', '.join(a[:-1])+' and '+ a[-1]
SnakesAndCoffee 有最好的方法。另一种(不太有用)的方法:
>>> a = ['hello1', 'hello2', 'hello3']
>>> ' and '.join((', '.join(a[:-1]), a[-1]))
'hello1, hello2 and hello3'
在这里您使用两个joins- 内部join将每个元素连接起来,直到倒数第二个元素用逗号。a[-1]该字符串然后使用外部连接到最后一个元素 ( ) join,即and.
list=[] for i in range(no):   for j in range(no-i):
      list.append(j+1);   if(i!=0):
      for a in range(2*i-1):
          list.append(" ");   for k in range(no-i,0,-1):
      if(i==0 and k==no):
          pass;
      else:
          list.append(k);   list.append("\n");