我最近创建了一个GUI,其中包含表。用户可以在单元格中插入值。如下图所示。
我想使用值根据用户给出的值进行一些计算。可以根据用户选择添加和删除行。换句话说,我从用户那里获得的数据可能仅来自一行或几行。
我设法自动从表中获取所有值,并将它们分配给python列表。每行列出了5个元素。
我已经实现了。 python列表中的数据必须进行处理和组织。这正是我想要的帮助。因为我一直在思考一些问题,而且我不知道该如何继续...
Python数据作为表中的列表。例如。
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '', 11, 12, 13, 14]
我想实现的目标!
我想将列表分成3次len(data)
。
我也做到了。
def split_seq(seq, num_pieces):
start = 0
for i in range(num_pieces):
stop = start + len(seq[i::num_pieces])
yield seq[start:stop]
start = stop
for data in split_seq(data, int(len(data)/5)):
print(data)
输出为:
[1, 2, 3, 4, 5]
[6, 7, 8, 9, 10]
['', 11, 12, 13, 14]
困难部分从这里开始。
我想获取每个分割的列表,并将它们放入if条件,并将值存储为变量,并将这些值发送给外部函数。
如下所示:
for i in range(len(splitted_list1)):
if splitted_list1[0] == '':
do nothing
else:
x_+str(i)= splitted_list1[i]
externalfunc(x_1,x_2,x_3,x_4,x_5)
for i in range(len(splitted_list2)):
if splitted_list2[0] == '':
do nothing
else:
x_+str(i)= splitted_list2[i]
externalfunc(x_1,x_2,x_3,x_4,x_5)
continues depending on number of splitted_lists
..............
感谢您的帮助,欢迎您提出另一个解决方案。
答案 0 :(得分:0)
使用一个列表并将其传递给override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)//this missing
}
。
行externalfunc
将最终被解释为x_+str(i)= ...
或任何数字。该函数将接受可能未知数量的变量。您可以将每个“变量”分组为一个列表,然后根据数字对它们进行索引。你已经有。每个人都在x_"0"= ...
,splitted_list0
等处。
但是,您不需要异步返回不同的列表。相反,您可以拆分列表并将它们放在一个更大的列表中。这是一个二维数组。似乎很吓人,但这只是另一个列表中的一些列表。
现在要将每个数字传递给splitted_list1
,您可以使用每个拆分列表并将其作为参数传递。基本上产生externalfunc
,依此类推。
最终的代码如下所示:
externalfunc(splitted_list0)
请注意,代码第一行中的# Split the data into seperate lists:
split_lists = [data[i*(len(data)/3):(i+1)*(len(data)/3)] for i in range(3)]
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '', 11, 12, 13, 14] becomes
# [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], ['', 11, 12, 13, 14]]
# Pass each list to the external function:
for i in range(split_lists):
externalfunc(split_lists[i])
# split_lists[i] will be [1, 2, 3, 4, 5] or [6, 7, 8, 9, 10], etc.
可以更改为小于列表3
长度的任何数字。这只是将数据分割成的列表数。记住,如果每3个都经过硬编码,则要更改一次,或者只是添加一个变量。最后,函数data
将具有5个数字的列表,作为该函数的第一个也是唯一的参数。
externalfunc