私はここでPythonを学んでいますサンプルコードです
girls = ['alice','bernice','clarice']
boys = ['chris','arnold','bob']
letterGirls = {}
for girl in girls:
letterGirls.setdefault(girl[0],[]).append(girl)
print [b+'+'+g for b in boys for g in letterGirls[b[0]]]
次のエラーが発生します
File "<stdin>", line 3
print [b+'+'+g for b in boys for g in letterGirls[b[0]]]
^
IndentationError: unindent does not match any outer indentation level
1)上記のエラーを解決し
たい2)Pythonのforループ内にコードブロックを書き込む方法を知りたいたとえば上記の例では、最初のfor行の下に空白を残さない場合はターミナルでチェックし、構文は次のようになります間違っていますPythonでforループコードブロックにスペースを与える方法が明確ではありませんPythonにスペースを残すことがあります
for girl in girls:
letterGirls.setdefault(girl[0],[]).append(girl)
print [b+'+'+g for b in boys for g in letterGirls[b[0]]]
以下の提案に基づいて更新しましたコードを更新しましたprintステートメントは与えられた例のforループの外にあるので、ubuntuターミナルでプログラムを更新しました
girls = ['alice','bernice','clarice']
boys = ['chris','arnold','bob']
letterGirls = {}
for girl in girls:
letterGirls.setdefault(girl[0],[]).append(girl)
print [b+'+'+g for b in boys for g in letterGirls[b[0]]]
しかし、それでも上記のコードでエラーが発生します
print[b+'+'+g for b in boys for g in letterGirls[b[0]]]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'c'
私はここで端末でプログラムを書いているので、私の端末はまさにそのように見えます
@ubuntu:~$ python
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> girls = ['alice','bernice','clarice']
>>> boys = ['chris','arnold','bob']
>>> letterGirls = {}
>>> for girl in girls:
... letterGirls.setdefault(girl[0],[]).append(girl)
... print [b+'+'+g for b in boys for g in letterGirls[b[0]]]
File "<stdin>", line 3
print [b+'+'+g for b in boys for g in letterGirls[b[0]]]
^
SyntaxError: invalid syntax
>>> print[b+'+'+g for b in boys for g in letterGirls[b[0]]]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'c'