我有一个包含数字的列表,我想创建一个新列表,其中包含具有相同的前4位数字的所有数字的单独列表。
例如:从l1中获得l2
l1 = [100023,100069,222236,22258,41415258,41413265,1214568...]
l2 = [[100023,100069],[222236,22258],[41415258,41413265],[1214568]...]
如何从l1创建l2?
我尝试遍历l1的元素,但没有成功!
def main():
l1=[100023,100069,222236,22258,41415258,41413265,1214568]
l2=[[100023,100069],[222236,22258],[41415258,41413265],[1214568]]
x=0
n=1
for i in l2:
if i[0:4] == l2[n][0:4]:
l2[x].append(i)
else:
l2[x+1].append(i)
print(l2)
if __name__ == '__main__':
main()
仍然不知道如何进行。
答案 0 :(得分:2)
您可以创建一个字典作为中间结果,然后将该字典转换回列表。 您还需要先将整数转换为字符串。
(async () => {
console.log(await asyncFunction());
})();
答案 1 :(得分:1)
在将列表元素转换为字符串并将第一个数字用作键之后,可以使用itertools.groupby
:
from django_tenants.utils import schema_context
def do_something(context):
print("do_something")
def my_callable():
tenant = "db_tenant"
with schema_context(tenant):
context = {"a": 1, "b": 2}
do_something(context)
my_callable()
编辑:Frieder's solution几乎是在幕后实现的方式。