2017-10-01 17 views
0
message = ["TS", "EE", "RE", "Z"] 

このリスト内の文字を比較しようとしています。例えば、 "EE"などのリスト内の値が同じ場合リストには、このリスト内の文字列オブジェクトの比較 - Python

message = ["TS", "EQ", "ER" "EZ"] 

のように見えるので、それがtrueを返すと文字を分離するために「Q」を追加しますので、私はそれが動作するループせずに正常にそれを試してみましたが、私はループには、範囲外の文字列インデックスを言うとき。

a = '' 
a = message[1] 
if a[0] == a[1]: 
    print("True") 
else: 
    print("False") 

私は何をすべき

for i in range(len(message)): 
    a = '' 
    a = message[i] 
    if a[0] == a[1]: 
     print("True") 

をループ?最初に文字列に変換して作業しますか?

+1

あなたの問題は、最後の要素は2番目の要素にアクセスしようとしたので、何の第二の要素が存在しない場合、すなわち、 '指数ERROR' – Chinny84

+0

のうちこれら' A =「」 '行がありません' 1 'の長さでありますあなたは 'a'の値を次の行に置き換えるので何かを達成します。 – jasonharper

+0

配列の最後の項目(文字 'Z')については、文字列は1文字のみであるため、位置1はありません。 – andy9775

答えて

1

配列には1つの文字のみを持つ要素 "Z"(つまりメッセージ[-1])が存在することに注意してください。

def getIndex(message): 
    for i in range(len(message)): 
    a = message[i] 
    if a[0] == a[1]: 
     return i 
index = getIndex(message) 
tmp = message[index][1] 
message[index][1] = 'Q' 
for x in range(index+1, len(message)): 
    tmp1 = message[x][0] 
    if len(message[x])==1: 
    message[x][0] = tmp 
    message[x][1] = tmp1 
    return 
    else: 
    message[x][0] = tmp 
    tmp = message[x][1] 
    message[x][1] = tmp1 
+0

これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューの投稿](/レビュー/低品質の投稿/ 17495172) – noamt

関連する問題