-1

format_list(items)Python 3で、1つまたは2つの文字列要素を含むリストitemsを取得し、要素を含む文字列を返す関数を作成しようとしています。渡されるリストには常に1つまたは2つの要素が含まれると想定します(つまり、リストは空ではなく、3つ以上の要素を含むことはありません)。

条件は次のとおりです。

  1. リストに単一の要素が含まれている場合、その要素は関数によって変更されずに返されます。
  2. リストに2つの要素が含まれている場合、それらは1つの文字列で返され、最初の要素は幅10のフィールドで左寄せされ、その後に垂直バー('|')が続き、2番目の要素が幅10のフィールドで右寄せされます。要素は、それぞれ最大10文字の文字列であると想定できます。

したがって、次のprint(format_list(['abc']))ように生成されます。

abc

そして、print(format_list(['Dave', '14']))以下を生成します:

Dave   |   14

どこから始めればいいのかわからない…。

4

3 に答える 3

1

これは宿題のように聞こえるので、あなたを動かすためのいくつかの手がかりがあります:

  • % formatting (例"Hello %s!" % some_var-> "Hello World!"if some_var == "World"

  • len(some_list)->リスト内のアイテムの数

ああ、そして私はそれを調べたくないので:

"%10s" % 'word'-> ......word(ドットはスペースです)

"%-10s" % 'word'->word......

于 2013-03-25T22:11:16.053 に答える
0
def format_list(l):
    if len(l)==1: return l[0]
    else:
        return '{:<10}|{:>10}'.format(l[0],l[1])

for l in [['abc'],['Dave', '14']]:        
    print(format_list(l)) 

プリント:

abc
Dave      |        14

.formatメソッドと.formatミニ言語を見てください。

于 2013-03-25T22:05:34.473 に答える
-1
def format_list(my_list)
    try:
        return my_list[0].ljust(10) + '|' + my_list[1].rjust(10)
    except IndexError: return my_list
于 2013-03-25T22:12:06.140 に答える