如何将字符串中的连续字母和连续数字分别合并到列表中?

时间:2018-11-08 00:08:31

标签: python

说我有以下字符串:

first = open('first.csv', 'rb')
second = open('second.txt', 'rb')
first_file = []
for line in first:
    first_file.append(line.split(','))

second_file = []
for line2 in second:
    second_file.append(line.split())

count=0
final = []
for i in range(len(first_file)):
    for j in range(len(second_file)):
        first_row = first_file[i]
        second_row = second_file[j]
        first_col = first_row.split()
        second_col = second_row.split()
        if first_col[0] == second_col[1] and first_col[1] < second_col[2] < first_col[2] and first_col[1] < second_col[3] < first_col[2]
            count+=1
            final.append(first_col[i]+second_col[0]+count)

我想将其转换为一个列表,该列表将单词保留为单独元素中的字符串,将数字保留为另一个元素(整数):

    string1 = 'Twenty 20 Twelve 12'

我当前的代码如下:

    list1 = ['Twenty', 20, 'Twelve', 12]

,结果显示为:

    list1 = [y for y in string1.replace(' ','')]

我如何能够编写代码将单词保留在单独的条目中,并将字符串中的数字转换为列表中的整数?我是编程的初学者,目前正在与C并行学习Python。

2 个答案:

答案 0 :(得分:2)

查看.split()函数。

采用

的形式
str.split(sep=None, maxsplit=-1)

所以您希望您的代码看起来像这样以使其分开。

string1 = 'Twenty 20 Twelve 12'
string1.split()
#['Twenty', '20', 'Twelve', '12']

要将数字转换为整数,只需检查.isdigit()

[int(i) if i.isdigit() else i for i in string1.split()]
#['Twenty', 20, 'Twelve', 12]

如果您不熟悉list comprehensions,则类似于

values = []
for i in string1.split():
    if i.isdigit():
        values.append(int(i))
    else:
        values.append(i)

values
#['Twenty', 20, 'Twelve', 12]

答案 1 :(得分:0)

您真的应该在Google上搜索它。...

但是您可以使用split

string1 = 'Twenty 20 Twelve 12'
list1=string1.split(' ')