如何在python中读取文本的输入行,并将这些元素组成一个数组,并将最后一位数字赋给变量?

btxsgosb  于 2021-08-20  发布在  Java
关注(0)|答案(4)|浏览(311)

您将作为包含与变量关联的列表和整数的文件的输入行提供。直线=1,2,3,4;5.
我如何用前四个元素[1,2,3,4]组成一个数组,并将最后一个元素5赋给变量k?
我想把它分开,得到这个:arr=[1,2,3,4]k=5

text = "1,2,3,4;5"
myList = text.split(";")
k = int(myList[-1])
myList.pop()

arr = myList
n = len(arr)

i = 0

while(i<n):

    left = i
    right = min(i + k - 1, n - 1)

    while (left < right):     
        arr[left], arr[right] = arr[right], arr[left]
        left+= 1;
        right-=1
    i+= k

for i in range(0, n):
    print(arr[i], end ="")

谢谢大家。我只需要拆分输入并将类型从string更改为integer。

6qqygrtg

6qqygrtg1#

这是一个使用 re 模块:

import re
line = '1,2,3,4;5'

* arr, k = re.split('[,;]', line)

这使得:

print(arr, k)
    ['1', '2', '3', '4'] 5

如果需要数组(python列表)是整数而不是字符串,可以使用:

arr = [int(s)  for s in arr]
vm0i2vca

vm0i2vca2#

您好,看看您输入的1,2,3,4;5如果这是输入,则:

(a,k) = input().split (";") #this will sperate 1,2,3,4 to arr and 5 to k
arr = a.split(",") #it sperate 1234 and makes a list
print(arr,r)

请告诉我它是否有效

92vpleto

92vpleto3#

以下是您可以尝试的内容:

x='1,2,3,4;5'.split(",")
last=int(x[-1].split(";")[1])
x[-1]=x[-1].split(';')[0]
print(x,last)

x='1,2,3,4;5'.split(';')
print(list(x[0].split(',')),int(x[1]))
qxgroojn

qxgroojn4#

你可以这样做:

>>> line = '1,2,3,4;5'
>>> arr, k = line.split(';')
>>> arr = arr.split(',')

>>> arr
['1', '2', '3', '4']

>>> k
5
``` `line.split(';')` 将值拆分为 `;` 分为两个列表。 `arr.split(',')` 然后将所有值拆分为 `,` .

相关问题