2017-08-25 5 views
0

にリストのインデックスを使用してforループ内の文字列補間を行うにはどうすればリストを持っていると私はこのようなループの文字列を内部でその要素を入れたい:のpython

my_list = ["Germany", "England", "Spain", "France"] 
for this in that: 
    do stuff 
    print(my_list[0]+ some other stuff) 

に出力する必要がありますlike:

Germany + some other stuff 
England + some other stuff 
Spain + some other stuff 
France + some other stuff 

文字列補間のインデックスも同様にループできますか?

ありがとうございます!

編集:ループは少し異なります。

for foo in bar: 
    another_bar = [] 
    for x, y in foo: 
     do stuff 
     a = object.method() 
     another_bar.append(my_list[0]+a) 

リストの文字列をネストループの2番目のレイヤーに配置する必要があります。ここではジップは使用できません。

+0

私は、これはあなたが望むものであることを理解として:my_listという国のためにmy_listという= [「ドイツ」、「イングランド」、「スペイン」、「フランス」] : プリント(国+「いくつかの他のもの」 ) –

+0

@ 0x1インデントを修正するために編集を編集しました。それがあなたの意図と一致していることを確認してください。また、コードにはより多くの構造が必要です。たとえば、 'index'は定義されていません。 [MCVE]を参照してください。 – Alexander

答えて

2

thatmy_listと同じ長さであると仮定していると思います。その場合は、zipを使用して2つのコンテナを並列に反復処理することができます。

my_list = ["Germany", "England", "Spain", "France"] 
my_other_list = [' is great at football', ' has good years in rugby', ' has Renaldo', ' is, well...'] 

def foo(bar): 
    return bar + '!' 

for country, bar in zip(my_list, my_other_list): 
    other = foo(bar) 
    print(country + other) 

# Output: 
# Germany is great at football! 
# England has good years in rugby! 
# Spain has Renaldo! 
# France is, well...! 
+0

これはネストされたループです。私は残念ながらここでジップを使用することはできません。私はその質問を編集した。 – 0x1

0

組み込み関数zip()を使用できます。 zipは、各リストを並行して処理することができます。

各イテラブルから要素を集めるイテレータを作成します。

タプルのイテレータを返します。iタプルには、各引数シーケンスまたはiterableのi番目の要素が含まれます。イテレータは、最短の入力iterableが使い果たされると停止します。単一の反復可能な引数では、1つのタプルの反復子を返します。引数がなければ、空のイテレータを返します。

my_list = ["Germany", "England", "Spain", "France"] 
for country, this in zip(my_list, that): 
    # do stuff 
    print(country + that) 

あなたのリストは、異なるサイズのものである場合は、itertoos.zip_longestを使用することができます。

各iterableの要素をまとめるイテレータを作成します。 iterablesの長さが不揃いである場合、欠損値はfillvalueで埋められます。反復は、最長の反復可能性がなくなるまで続きます。

from itertools import zip_longest 

my_list = ["Germany", "England", "Spain", "France"] 
for country, this in zip_longest(my_list, that): 
    # do stuff 
    print(country + that) 
+0

ネストされたループです。私は残念ながらここでジップを使用することはできません。私はその質問を編集した。 – 0x1

0

私は、これはあなたを助けることができると思います。

for index, this in enumerate(that): 
    do stuff 
    print(my_list[index]+ some other stuff) 
+0

これはネストされたループです。私は残念ながらここでジップを使用することはできません。私はその質問を編集した。 – 0x1

+0

あなたはインデックスが必要だと言いますが、列挙体があなたを満足させると感じています。[enumerate](https://docs.python.org/2.7/library/functions.html?highlight=enumerate#enumerate) – hugoxia