Python 使用字符串搜索字典列表,并将其附加到另一个相同格式的列表中
我有一张物品清单Python 使用字符串搜索字典列表,并将其附加到另一个相同格式的列表中,python,python-3.x,string,list,dictionary,Python,Python 3.x,String,List,Dictionary,我有一张物品清单 array = [ {'Path': '/', 'UserName': 'sns-1', 'UserId': '123'}, {'Path': '/', 'UserName': 'user1', 'UserId': '456'}, {'Path': '/', 'UserName': 'user2', 'UserId': '789'}, {'Path': '/', 'UserName': 'sns-22', 'UserId': '123'},
array = [
{'Path': '/', 'UserName': 'sns-1', 'UserId': '123'},
{'Path': '/', 'UserName': 'user1', 'UserId': '456'},
{'Path': '/', 'UserName': 'user2', 'UserId': '789'},
{'Path': '/', 'UserName': 'sns-22', 'UserId': '123'},
{'Path': '/', 'UserName': 'sns-3344', 'UserId': '456'}
]
我想搜索以sns开头的用户名,并将其分离到另一个列表中。有人能告诉我怎么做吗
预期产出:
array1 = [
{'Path': '/', 'UserName': 'sns-1', 'UserId': '123'},
{'Path': '/', 'UserName': 'sns-22', 'UserId': '123'},
{'Path': '/', 'UserName': 'sns-3344', 'UserId': '456'}
]
array2 = [
{'Path': '/', 'UserName': 'user1', 'UserId': '456'},
{'Path': '/', 'UserName': 'user2', 'UserId': '789'},
]
您可以这样做:
array = [
{'Path': '/', 'UserName': 'sns-1', 'UserId': '123'},
{'Path': '/', 'UserName': 'user1', 'UserId': '456'},
{'Path': '/', 'UserName': 'user2', 'UserId': '789'},
{'Path': '/', 'UserName': 'sns-22', 'UserId': '123'},
{'Path': '/', 'UserName': 'sns-3344', 'UserId': '456'}
]
array1 = [x for x in array if x['UserName'].startswith('sns')]
array2 = [x for x in array if not x['UserName'].startswith('sns')]
输出:
>>> array1
[{'Path': '/', 'UserName': 'sns-1', 'UserId': '123'},
{'Path': '/', 'UserName': 'sns-22', 'UserId': '123'},
{'Path': '/', 'UserName': 'sns-3344', 'UserId': '456'}]
>>> array2
[{'Path': '/', 'UserName': 'user1', 'UserId': '456'},
{'Path': '/', 'UserName': 'user2', 'UserId': '789'}]
您可以这样做:
array = [
{'Path': '/', 'UserName': 'sns-1', 'UserId': '123'},
{'Path': '/', 'UserName': 'user1', 'UserId': '456'},
{'Path': '/', 'UserName': 'user2', 'UserId': '789'},
{'Path': '/', 'UserName': 'sns-22', 'UserId': '123'},
{'Path': '/', 'UserName': 'sns-3344', 'UserId': '456'}
]
array1 = [x for x in array if x['UserName'].startswith('sns')]
array2 = [x for x in array if not x['UserName'].startswith('sns')]
输出:
>>> array1
[{'Path': '/', 'UserName': 'sns-1', 'UserId': '123'},
{'Path': '/', 'UserName': 'sns-22', 'UserId': '123'},
{'Path': '/', 'UserName': 'sns-3344', 'UserId': '456'}]
>>> array2
[{'Path': '/', 'UserName': 'user1', 'UserId': '456'},
{'Path': '/', 'UserName': 'user2', 'UserId': '789'}]
它不是python式的,仍然需要弄清楚逻辑,或者您可以参考其他答案:
array1=[]
array2=[]
for elem in array:
if elem['UserName'].startswith('sns'):
print(array1.append(elem))
else:
print(array2.append(elem))
它不是python式的,仍然需要弄清楚逻辑,或者您可以参考其他答案:
array1=[]
array2=[]
for elem in array:
if elem['UserName'].startswith('sns'):
print(array1.append(elem))
else:
print(array2.append(elem))
你可以这样做:
array1=[]
array2=[]
对于范围内的i(len(数组)):
如果数组[i]['UserName'].startswith('sns'):
array1.append(数组[i])
其他:
array2.append(数组[i])
打印('array1',array1)
打印('array2',array2)
您可以这样做:
array1=[]
array2=[]
对于范围内的i(len(数组)):
如果数组[i]['UserName'].startswith('sns'):
array1.append(数组[i])
其他:
array2.append(数组[i])
打印('array1',array1)
打印('array2',array2)
检查此代码
array1 = []
array2 = []
for dictionary in array:
if 'sns' in dictionary['UserName']:
array1.append(dictionary)
else:
array2.append(dictionary)
检查此代码
array1 = []
array2 = []
for dictionary in array:
if 'sns' in dictionary['UserName']:
array1.append(dictionary)
else:
array2.append(dictionary)
他需要用户名以“sns”开头,您的代码打印用户名包含“sns”,无论其位置如何他需要用户名以“sns”开头,您的代码打印用户名包含“sns”,无论其位置如何用户名应以“sns”开头,但您的代码也将采用用户名,用户名之间包含“sns”。比如-'User1-sns'用户名应该以'sns'开头,但是您的代码也将采用用户名,用户名之间包含'sns'。比如-‘User1 sns’的“startswith”很好用,谢谢你peeps“startswith”很好用,谢谢你peeps