我正在执行一个代码,该代码需要将输入的值存储在两个数组中。我要举一个例子。
输入:1,2,3,4,5,6,7,8
Array1= []
Array2= []
我想做的是将输入的第一个值存储在array1中,将第二个存储在array2中。最终结果将是
Array1=[1,3,5,7]
Array2=[2,4,6,8]
是否可以在python3中做到这一点?谢谢
我尝试过类似的操作,但不起作用
arr1,arr2 = list(map(int, input().split()))
答案 0 :(得分:7)
您可以使用以下内容:
l = [int(x) for x in input().split(',')]
array_1 = l[::2]
array_2 = l[1::2]
答案 1 :(得分:2)
因此,我假设您可以使用拆分将输入输入到列表或“数组”中?最好以某种方式“映射”值,而numpy可能会提供一个好的解决方案。不过,这是直接的工作;
while INPUTS:
ARRAY1.append(INPUTS.pop())
if INPUTS:
ARRAY2.append(INPUTS.pop())
答案 2 :(得分:1)
您的尝试:
arr1,arr2 = list(map(int, input().split()))
试图平均分解2个元素中的8个元素的列表。 Python可以将2个元素解压缩为1个或2个,甚至可以使用可迭代的解压缩,例如:
>>> arr1,*arr2 = [1,2,3,4]
>>> arr2
[2, 3, 4]
但是您看到的结果不是您想要的。
而不是解压缩,而是循环使用列表列表和模来计算正确的目的地:
lst = list(range(1,9)) # or list(map(int, input().split())) in interactive string mode
arrays = [[],[]]
for element in lst:
arrays[element%2].append(element)
结果:
[[2, 4, 6, 8], [1, 3, 5, 7]]
(用arrays[1-element%2]
更改顺序)
一般情况是根据条件产生索引:
arrays[0 if some_condition(element) else 1].append(element)
或具有2个列表变量:
(array1 if some_condition(element) else array2).append(element)
答案 3 :(得分:0)
我在类中有解决方案;)
class AlternateList:
def __init__(self):
self._aList = [[],[]]
self._length = 0
def getItem(self, index):
listSelection = int(index) % 2
if listSelection == 0:
return self._aList[listSelection][int(index / 2)]
else:
return self._aList[listSelection][int((index -1) / 2)]
def append(self, item):
# select list (array) calculating the mod 2 of the actual length.
# This alternate between 0 and 1 depending if the length is even or odd
self._aList[int(self._length % 2)].append(item)
self._length += 1
def toList(self):
return self._aList
# add more methods like pop, slice, etc
inputs = ['lemon', 'apple', 'banana', 'orange']
aList = AlternateList()
for i in inputs:
aList.append(i)
print(aList.toList()[0]) # prints -> ['lemon', 'banana']
print(aList.toList()[1]) # prints -> ['apple', 'orange']
print(aList.getItem(3)) # prints -> "orange" (it follow append order)
答案 4 :(得分:0)
根据上述问题,我在这里做了一些假设:
给出的输入仅包含整数。
odd
和even
是两个分别包含奇数和偶数的数组。
odd, even = list(), list()
[even.append(i) if i % 2 == 0 else odd.append(i) for i in list(map(int, input().split()))]
print("Even: {}".format(even))
print("Odd: {}".format(odd))