Python新手在这里。我正在尝试对包含各种长度列表的列表执行基本功能。在这些列表中是包含我打算用作范围的元素对的元组。我想将这些元素转换为整数,然后用整数创建一个新元组,后跟2
,它将表示迭代器。
我想要l
:
l = [[('100', '200'), ('300', '400'), ('500', '600')], [('100', '200')], [('100', '200')]]
被替换为l_upd
l_upd = [[(100, 200, 2), (300, 400, 2), (500, 600, 2)], [(100, 200, 2)], [(100, 200, 2)]]
这显然是行不通的(而且我不知道如何将2
放置的元素作为元素:
l1 = []
l2 = []
for pairs in l:
for pair in pairs:
l1.append(int(i[0]))
l2.append(int(i[1]))
l_upd = zip(l1, l2)
编辑:我宁愿不使用列表理解方法,因为我需要包含一个if
,else
语句。有些元素包含字母,有些是空的。
这些异常需要以下内容:
for pair in pairs:
if pair[0].isdigit():
addr_from.append(int(i[0]))
elif pair[0].isalnum() is True and pair[0].isdigit is False:
addr_from.append(re.sub(r'((?:[A-Z].*?)?(?:\d.*?)?[A-Z]+)(\d+)',r'\1%\2',pair[0]))
else:
addr_from.append(pair[0])
if pair[1].isdigit():
addr_to.append(int(i[1]) + 2)
elif pair[1].isalnum() is True and pair[1].isdigit is False:
addr_to.append(re.sub(r'((?:[A-Z].*?)?(?:\d.*?)?[A-Z]+)(\d+)',r'\1%\2',pair[1]))