Python 将字符串(从随机行)拆分为两个变量

Python 将字符串(从随机行)拆分为两个变量,python,Python,我试图将随机给定的字符串拆分为两个变量。尝试使用“.split”,但我无法使其工作。如果可能的话,给我一个最简单但有效的方法是非常感谢的,因为我还是python的新手。这就是我目前正在处理的 file = open("CapitalCities.txt","r") file_contents = file.read() import random def generateQuiz(): with open ("CapitalCities.txt") as f: line

我试图将随机给定的字符串拆分为两个变量。尝试使用“.split”,但我无法使其工作。如果可能的话,给我一个最简单但有效的方法是非常感谢的,因为我还是python的新手。这就是我目前正在处理的

file = open("CapitalCities.txt","r")
file_contents = file.read()

import random
def generateQuiz():
    with open ("CapitalCities.txt") as f:
        lines = f.readlines()
        print(random.choice(lines))

generateQuiz()
…这是我正在使用的文本文件的一些内容:


(编辑:忘记提及。拆分必须用“-”触发。我不知道如何在拆分后删除“-”)

如果您的每一行的格式都是
'string1-string2'
,那么您应该使用
.split('-')


显然,您需要根据您的最终目标对其进行调整,但现在它向您展示了如何构建子列表,这些子列表表示由
-
分隔的每个字符串对,并允许您随机选择一个子列表,并将其存储在变量
x
y

import random
def generateQuiz():
    with open("CapitalCities.txt") as f:
        # create a list of sublists; [['Albania', 'Tirana'], ['Andorra', 'Andorra la Vella'], ...,]
        # strip() removes '\n', split('-') returns the sublists
        pairs = [line.strip().split('-') for line in f] 
        # pick a random sublist
        # the '=' will try to unpack the two into x and y
        x, y = random.choice(pairs) 
        print(x, y)

generateQuiz()
也许,这将有助于:

import random
def generateQuiz():
    with open ("CapitalCities.txt") as f:
        lines = f.readlines()
        words = random.choice(lines).split('-')
        state = words[0]
        capital = words[1]
        print(state, capital)
generateQuiz()

尝试
.split('-')
时发生了什么?前两行
file=open()的用途是什么;file\u contents=file.read()
?你再也不用它们了。您是否试图将say
阿尔巴尼亚地拉那
分成两个变量
x=albana;y=地拉那
?这里的问题和预期输出是什么?@DanielH It给了我“AttributeError”。我相信是我写的方式给了我灵感error@pstatix移除它们。没有想到他们没有目的,是的,他们就这样分开了
import random
def generateQuiz():
    with open("CapitalCities.txt") as f:
        # create a list of sublists; [['Albania', 'Tirana'], ['Andorra', 'Andorra la Vella'], ...,]
        # strip() removes '\n', split('-') returns the sublists
        pairs = [line.strip().split('-') for line in f] 
        # pick a random sublist
        # the '=' will try to unpack the two into x and y
        x, y = random.choice(pairs) 
        print(x, y)

generateQuiz()
import random
def generateQuiz():
    with open ("CapitalCities.txt") as f:
        lines = f.readlines()
        words = random.choice(lines).split('-')
        state = words[0]
        capital = words[1]
        print(state, capital)
generateQuiz()