【问题标题】:python 3.4.2 joining strings into listspython 3.4.2 将字符串加入列表
【发布时间】:2026-02-10 14:25:01
【问题描述】:

我是 python 新手,所以正在编写小程序以更加熟悉。我有一个 rasp PI,非常熟练的 unix,完成了编程,但不是 python3。其中一个是简单的冒泡排序,它读取两个带有数字 5 9 2 19 18 17 13 的 txt 文件和另一个带有不同数字 10 14 2 4 6 20 类型的东西

我使用一个函数读取每个文件,然后在对整个字符串进行冒泡排序之前加入它们,我知道它需要是一个列表,以便冒泡排序函数可以在每次传递期间移动数字。据我所知,我的问题是合并排序(连接列表的 var 名称)始终是一个字符串。

有人解释为什么会这样吗?以及如何将这两个文件转换为一个列表? ------------------示例代码-------------------

mergesort = []

def readfile1():
    tempfile1 = open('sortfile1.txt','r')
    tempfile1 = tempfile1.read()
    return tempfile1


def readfile2():
    tempfile2 = open('sortfile2.txt','r')
    tempfile2 = tempfile2.read()
    return tempfile2

sortstring1 = readfile1()
# print (sortstring1)

sortstring2 = readfile2()
# print (sortstring2)

# mergesort = list(set(sortstring1) | set(sortstring2)
mergesort = sortstring1 + sortstring2
print (mergesort, "Type=", type(mergesort))

【问题讨论】:

    标签: string python-3.x


    【解决方案1】:

    假设你想得到一个整数列表,你可以这样做。请注意,我还将您的函数合并为一个,因为它们做的事情完全相同。

    在您的代码中,您没有将文件的内容拆分为列表,因此它是作为字符串读入的。使用split() 方法将字符串拆分为列表。

    def read_file_to_list(filename):
        temp = open(filename, 'r')
        string = temp.read()
        numbers = [int(x) for x in string.split(' ')]
        return numbers
    
    sort1 = read_file_to_list('sortfile1.txt')
    sort2 = read_file_to_list('sortfile2.txt')
    
    total = sort1 + sort2
    

    【讨论】:

    • 谢谢先生,我曾考虑过将两个文件读取合并,但没有考虑将读取写入字符串,因此从我的学习角度来看,您的示例非常有用。
    • 谢谢先生 - 文件读取、字符串和函数方面的优秀课程,冒泡排序本身就是一个很好的学习机会。
    • 现在我建议您研究一下合并和快速排序。它们在 python 中更高效、更有趣且易于学习