Python 取含dictionary的List中某一字段

问题描述:

需要处理的list 如下:

input_first = [{u’script’: u’4730440220349e031bf913acad4b727f381a2cfe8aaf0234bc78fe8a64e3f076f49493be390220102fe89110f60c15cd184e0388b099ed0699feb910a8a6da15647138b2d2ad7f0121028a6cc1b512c96ddd128a02d75a568ccfe4636ac192f3f4ac9e9bb4666f30fdbd’, u’prev_out’: {u’addr’: u’17z35xHz19KcdnxDGH9awSsqxSYSLeu35T’, u’script’: u’76a9144c9a34908d70c1836c528ff1bff419e60a53599e88ac’, u’spent’: True, u’value’: 30866968, u’n’: 1, u’tx_index’: 85999079, u’type’: 0}, u’sequence’: 4294967295L}]

需要取出其中的prev_out字段。

解决办法:

input_first[0][u"prev_out"]

结果如下:

print (input_first[0][u"prev_out"])

{u’addr’: u’17z35xHz19KcdnxDGH9awSsqxSYSLeu35T’, u’script’: u’76a9144c9a34908d70c1836c528ff1bff419e60a53599e88ac’, u’spent’: True, u’value’: 30866968, u’n’: 1, u’tx_index’: 85999079, u’type’: 0}

总结:
list 里面包含一个 dictionary;
对于list 取值 list[0][字段];
对于dictionary取值 {key:value,kay:value……} dictionary[“key”]

Python,如果你有一个`list`,其包含一些对象,这些对象有多个属性需要进行去重操作,你可以采用以下几种方法: 1. **哈希集合(Set)**:首先将对象转换为元组,因为集合只关心元素本身而不关心其嵌套结构。然后,你可以将元组放入`set`,因为`set`自动去除重复元素。最后,再从`set`转回列表。 ```python def remove_duplicates(lst): unique_objects = set(tuple(obj.items()) for obj in lst) return [dict(t) for t in unique_objects] # 示例 objects = [{'field1': 'value1', 'field2': 'value2'}, {'field1': 'value1', 'field3': 'value3'}, ...] new_list = remove_duplicates(objects) ``` 2. **字典(Dictionary)**:如果对象是可哈希的,并且每个对象的所有属性值都是唯一的组合,可以尝试用字典存储,键就是对象自身,因为字典不允许重复键。 ```python def remove_duplicates_by_dict(lst): unique_objs = {} result = [] for obj in lst: key = frozenset(obj.items()) # 使用frozenset防止修改对象影响hash if key not in unique_objs: unique_objs[key] = obj result.append(obj) return result # 示例同上 ``` 3. **自定义排序比较函数(如果属性是可比较的)**:如果你能对对象的属性进行排序并保证排序后的顺序唯一,可以用`sorted`配合`lambda`表达式来过滤重复。 ```python def remove_duplicates_sorted(lst, by_fields): def obj_key(obj): return tuple(getattr(obj, field) for field in by_fields) return list({obj_key(obj): obj for obj in lst}.values()) # 示例 unique_list = remove_duplicates_sorted(objects, ['field1', 'field2']) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值