Py学习  »  Python

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

Eduardo Raygoza • 2 年前 • 840 次点击  

您将作为一个文件的输入行,该文件包含一个列表和一个与变量关联的整数。 直线=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。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128275
 
840 次点击  
文章 [ 4 ]  |  最新文章 2 年前
Victor Douet
Reply   •   1 楼
Victor Douet    3 年前

你可以这样做:

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

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

>>> k
5

line.split(';') 将值除以 ; 分为两个列表。
arr.split(',') 然后将所有值拆分为 , .

user15801675 user15801675
Reply   •   2 楼
user15801675 user15801675    3 年前

以下是您可以尝试的:

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]))
new_to_code
Reply   •   3 楼
new_to_code    3 年前

您好,看看您输入的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)

请告诉我它是否有效

nosuchthingasmagic
Reply   •   4 楼
nosuchthingasmagic    3 年前

这是一个使用 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]