2

最初に事前に感謝します。まだPythonにはかなり慣れていません。

次のリストがあります。

GroceryList = ['apples', 'oranges', 'strawberries and grapes', 'blueberries']

コードで .replace を使用してみました:

GroceryList = [f.replace('and', '\'' + ',' + '\'') for f in GroceryList]

これは「and」を置き換えますが、リストを印刷した後の出力は次のとおりです。

['apples', 'oranges', "strawberries ',' grapes", 'blueberries']

これにより、2 つの引用符が残り、意図した 5 つではなく 4 つの項目で別のリストが作成されます。誰かが理由を知っていますか?(あなたの説明で、可能であれば、私が間違っていることも説明していただけますか?)

4

3 に答える 3

0

問題は、2 つの別個のリスト項目のように見えるように文字列を手動で変更していることです。これは、文字列を複数のオブジェクトに分割することと同じではありません。str.splitそのためのメソッドを使用してください。

new_grocery_list = []
for item in GroceryList:
    new_grocery_list.extend(item.split(' and '))
print(new_grocery_list)

リスト内包表記で、これらすべてを一度に行うこともできます。ただし、読むのは少し直感的ではないので、個人的にはこの場合は明示的なループを好みます。読みやすさが重要です!

new_grocery_list = [subitem for item in GroceryList for subitem in item.split(' and ')]
print(new_grocery_list)
于 2013-06-19T16:10:53.443 に答える