String python 3.4.2将字符串连接到列表中

String python 3.4.2将字符串连接到列表中,string,python-3.x,String,Python 3.x,我是一个python新手,所以我写一些小程序来让大家更熟悉。我有一个rasp PI到,非常熟练的unix,做过编程,但不是python3。其中一个是一个简单的冒泡排序,它读取两个txt文件,数字为59219713,另一个数字为101424620 我使用一个函数读取每个文件,然后在对整个字符串进行bubblesort排序之前加入它们,我知道它需要是一个列表,以便bubblesort函数可以在每次传递期间移动数字。从这里我可以看出我的问题是mergesort(串联列表的变量名)总是一个字符串 有人解

我是一个python新手,所以我写一些小程序来让大家更熟悉。我有一个rasp PI到,非常熟练的unix,做过编程,但不是python3。其中一个是一个简单的冒泡排序,它读取两个txt文件,数字为59219713,另一个数字为101424620

我使用一个函数读取每个文件,然后在对整个字符串进行bubblesort排序之前加入它们,我知道它需要是一个列表,以便bubblesort函数可以在每次传递期间移动数字。从这里我可以看出我的问题是mergesort(串联列表的变量名)总是一个字符串

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

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))

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

在代码中,您没有将文件内容拆分为列表,因此它是作为字符串读入的。使用
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中,它们更高效、更有趣、更容易学习