为了账号安全,请及时绑定邮箱和手机立即绑定

将项目从一个列表移动到另一个列表并删除字符串的某些部分

将项目从一个列表移动到另一个列表并删除字符串的某些部分

月关宝盒 2022-10-18 16:57:23
我有这个带有 ID 和标题的列表myemails = [12345, 56789, 456789, 54321, 98765, 'Sample Title: Title number one', 'Sample Title: Title number two', 'Sample Title: Title number three', 'Sample Title: Title number four', 'Sample Title: Title number five']我正在寻找一种方法将此列表拆分为两个单独的列表,其中一个仅存储 ID,另一个标题中没有字符串的“示例标题:”部分:myemailId = [12345, 56789, 456789, 54321, 98765]myemailTitle = ['Title number one', 'Title number two', 'Title number three', 'Title number four', 'Title number five']到目前为止我的代码:from collections import defaultdictmyemails = [12345, 56789, 456789, 54321, 98765, 'Sample Title: Title number one', 'Sample Title: Title number two', 'Sample Title: Title number three', 'Sample Title: Title number four', 'Sample Title: Title number five'] d = defaultdict(myemails)for x in myList:   d[type(x)].append(x)emailId = print d[int]emailTitle = print  d[str]但是它会引发此错误:TypeError: first argument must be callable or None有人可以帮我吗?提前致谢!
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

利用:


myemailid = [item for item in myemails if str(item).isdigit()]

myemailtitle = [item.replace("Sample Title: ", "") for item in myemails if not str(item).isdigit()]


print(myemailid)

print(myemailtitle)

这打印:


[12345, 56789, 456789, 54321, 98765]

['Title number one', 'Title number two', 'Title number three', 'Title number four', 'Title number five']


查看完整回答
反对 回复 2022-10-18
?
互换的青春

TA贡献1797条经验 获得超6个赞

您的代码中有几个问题

  • defaultdict应该用类型初始化,但你用myemails而不是初始化它list

  • 您将结果分配给print变量(print返回None

试试这个:

myemails = [12345, 56789, 456789, 54321, 98765, 'Sample Title: Title number one', 'Sample Title: Title number two', 'Sample Title: Title number three', 'Sample Title: Title number four', 'Sample Title: Title number five'] 


ids = []

titles = []

for x in myemails:

    if type(x) == int:

        ids.append(x)  

    elif type(x) == str:

        titles.append(x)

    else:

        print("unsupported type {} of {}".format(type(x),x))


print(ids)

print(titles)


查看完整回答
反对 回复 2022-10-18
  • 2 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号