繁体   English   中英

如何从数组中删除元组?

[英]How to remove tuple from an array?

该数组是一维数组:

[('2007-Q2', 'ANG MO KIO', '1-ROOM', -1) ('2007-Q2', 'ANG MO KIO', '2-ROOM', -1) ('2007-Q2 ', 'ANG MO KIO', '3-ROOM', 172000) ('2022-Q1', '义顺', '4-ROOM', 450000) ('2022-Q1', '义顺', '5-ROOM ', 582500) ('2022-Q1', '义顺', '执行', 800000)]

我想删除包含“-1”的元组

我目前正在使用 del function

datacopy = np.copy(data)
print(datacopy)

for i in datacopy:
    if i[3] == -1:
        del i
    print(datacopy)

但我最终得到了同一个数组的重复:

[('2007-Q2', 'ANG MO KIO', '1-ROOM', -1) ('2007-Q2', 'ANG MO KIO', '2-ROOM', -1) ('2007-Q2 ', 'ANG MO KIO', '3-ROOM', 172000) ('2022-Q1', '义顺', '4-ROOM', 450000) ('2022-Q1', '义顺', '5-ROOM ', 582500) ('2022-Q1', '义顺', 'EXEC', 800000)] [('2007-Q2', '宏茂桥', '1-ROOM', -1) ('2007-Q2 ', 'ANG MO KIO', '2-ROOM', -1) ('2007-Q2', 'ANG MO KIO', '3-ROOM', 172000) ('2022-Q1', '义顺', ' 4房', 450000) ('2022-Q1', '义顺', '5房', 582500) ('2022-Q1', '义顺', 'EXEC', 800000)] [('2007-Q2 ', 'ANG MO KIO', '1-ROOM', -1) ('2007-Q2', 'ANG MO KIO', '2-ROOM', -1) ('2007-Q2', 'ANG MO KIO ', '3房', 172000) ('2022-Q1', '义顺', '4房', 450000) ('2022-Q1', '义顺', '5房', 582500) (' 2022-Q1', '义顺', '执行', 800000)]

我想得到的回报是

[('2007-Q2', 'ANG MO KIO', '3-ROOM', 172000) ('2022-Q1', '义顺', '4-ROOM', 450000) ('2022-Q1', '义顺', '5-ROOM', 582500) ('2022-Q1', '义顺', 'EXEC', 800000)]

试试这个:

newList= [x for x in datacopy if x[3] != -1] 

在这里,x 将是您的每个元组,如果 x[3] != -1将作为您的条件的过滤器

要么使用

filtered_data = [tuple for tuple in data if tuple[3] != -1]

要么

filtered_data = filter(lambda x: x[3],= -1, data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM