如何遍历集合并获取set的最后一个值

时间:2015-11-13 13:18:59

标签: python

我想遍历一个名为Group的集合并获取该组的最后一个值。

我尝试了以下代码:

m = list()
for i in range (1,6):
    Group = base.Getentity(constants.ABAQUS, "SET", i)
    m.append(Group)
    print(Group)

我的结果如下:

<Entity:0*17a:id:1>
<Entity:0*14g:id:2>
<Entity:0*14f:id:3>
<Entity:0*14a:id:4>
None
None

在上面的代码中,我使用了一系列(1,6)作为示例,但实际上我不知道范围编号所以我想编写不使用{{1}的代码} / rangexrange

即使代码是用Python编写的,我的问题也更为笼统。

4 个答案:

答案 0 :(得分:2)

你的代码没有多大意义。

m.append(set)

没有做任何事情,它只是将python-class-type set附加到m,而不是从base.Getentity

获得的值

但回到这个问题。

您可以尝试使用while循环。

像这样:

m = []
i = 0
while True:
   group = base.Getentity(constants.ABAQUS,"SET",i)
   if group is None:
       break
   i += 1
   m.append(group)
print(m[-1])

答案 1 :(得分:0)

这样的简单迭代解决方案可能可以完成你的工作:

last_group = None
i = 0
while True:
    next_group = base.Getentity(constants.ABAQUS, "SET", i)
    i += 1
    if next_group is None:
        break
    last_group = i, next_group

print last_group

答案 2 :(得分:0)

Float32Array()
my_set = {1, 'hello', 12.4}
print(my_set)
print(list(my_set).pop())

--output:--
{1, 12.4, 'hello'}
hello

答案 3 :(得分:0)

假设i未知,您必须迭代i才能获得最终结果:

生成您的值并打印最后一个:

i = 1
last_group = None
while True:
    group = base.Getentity(constants.ABAQUS,"SET", i)
    if not group:
        print 'Last item: {0} with i: {1}'.format(last_group, i)
    last_group = group
    i += 1

我们没有保留结果列表,因此如果i可能很大,请保持较低的内存占用量。