3

非常にシンプルで迅速な質問。このリストを例にとってみましょう。

a = ['hello1', 'hello2', 'hello3']
','.join(a)

リストの最後の要素の前に、コンマの代わりに「と」を付けたいのですが。だから私は得るでしょう:

こんにちは1、こんにちは2とこんにちは3

それ以外の....

こんにちは1、こんにちは2、こんにちは3

を使用してこれを達成する方法はあり.join()ますか?このような簡単な例のリストに入力するだけでよいことはわかっていますが、実際のプログラムで必要なリストはユーザー入力からのものです。

4

4 に答える 4

7

基本的に、リストの2つの部分を別々に操作する必要があります。最初の部分は最後の文字列を除くすべてで構成され、もう1つの部分は最後の文字列のみで構成されます。

def my_func(lst):
    return ', '.join(lst[:-1])+' and '+lst[-1]

またはラムダを使用する:

f = lambda x: ', '.join(x[:-1]) + ' and '+x[-1]

または、1回だけ実行したい場合:

result = ', '.join(a[:-1]) + ' and ' + a[-1]
于 2012-12-07T06:05:45.047 に答える
3

SnakesAndCoffeeには最良の方法があります。別の(あまり役に立たない)方法:

>>> a = ['hello1', 'hello2', 'hello3']
>>> ' and '.join((', '.join(a[:-1]), a[-1]))
'hello1, hello2 and hello3'

ここでは2つを使用しています。joins内部joinは、最後から2番目の要素までのすべての要素をコンマで結合します。次に、その文字列はa[-1]、外側のjoin、であるを使用して最後の要素()に結合されandます。

于 2012-12-07T06:09:11.753 に答える
3

小さなリストを特別な場合として処理する必要があります。

def my_function(a):
    if a == []:
        return ""
    elif len(a) == 1:
        return a[0]
    else:
        return ', '.join(a[:-1])+' and '+ a[-1]
于 2012-12-07T06:53:55.827 に答える
-1
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");
于 2015-04-01T00:36:10.830 に答える