2017-09-06 7 views
1

誰でもこの問題を解明できますか?私はPython 3.4.2を持っていますか?Python 3.4.2で.formatを使って複数のリストを出力する

私は2つのリストを持っており、.format()を使って各リスト内の特定のアイテムを出力したいと思います。ここでは、コードです:

names=["Conan", "Belit", "Valeria"] 
ages=[25, 21, 22] 

print("{0} is {1} years old. Whereas {1} is {0} years old.".format(*names, *ages)) 

は、私は、リスト内の特定の項目を呼び出すための印象の下にあった、*リスト名を使用する必要があります。

print("{0}".format(*names)) 

複数のリストを呼び出すときは表示されません。私はアスタリスクでリスト名の両方を試しています。私が得るように見えるのは、さまざまな構文エラーなどです。

私はそれをやらなければならないことは、印刷するだけです:コナンは21歳

。一方、Belitは25歳です。

ありがとうございます。ちょうどこの周りに自分の道を考えるように見えることはできません。

答えて

0

Additional UnpackingがPython 3.5で追加されたため、Python 3.4の関数呼び出しで複数のアスタリスク*を使用することはできません。

print("{0} is {1} years old. Whereas {1} is {0} years old.".format(
    "Conan", "Belit", "Valeria", 25, 21, 22)) 

ので、この版画:

Conan is Belit years old. Whereas Belit is Conan years old. 

あなたが望むように、それはまた、アンパックリストでそれを呼び出すようになる

print("{0} is {1} years old. Whereas {1} is {0} years old.".format(*names, *ages)) 

を呼び出しているので、str.formatでは動作しません。

代わりに、2つのリストを渡して、置換フィールド内のフィールド名の後ろのインデックスを使用することができます。 。 {0}は、format(この場合はnamesリスト)と{0[0]}に渡された最初の引数がリストの最初の項目になることを意味します。

print("{0[0]} is {1[0]} years old. Whereas {0[1]} is {1[1]} years old.".format(
    names, ages)) 
# Or use keyword arguments. 
print("{names[0]} is {ages[0]} years old. Whereas {names[1]} is {ages[1]} years old.".format(
    names=names, ages=ages)) 
+0

素晴らしい、ありがとう、非常にskrx - 魅力的なように働いた。本当に鼻を上げ始めました。 – DavidH

関連する問題