Python 字母范围
假设我有一个像字符串=['A1','A5']这样的列表,我想创建一个新列表,它应该从A1开始,以A5结束 例如['A1','A5']->['A1','A2','A3','A4','A5'] 类似地,对于这种情况,['A1','C1']->['A1','B1','C1'] 我的方法是为A1创建一个LinkedList节点,然后在每次新创建节点时增加整数常量,然后将它们附加在一起Python 字母范围,python,Python,假设我有一个像字符串=['A1','A5']这样的列表,我想创建一个新列表,它应该从A1开始,以A5结束 例如['A1','A5']->['A1','A2','A3','A4','A5'] 类似地,对于这种情况,['A1','C1']->['A1','B1','C1'] 我的方法是为A1创建一个LinkedList节点,然后在每次新创建节点时增加整数常量,然后将它们附加在一起 如何做到这一点?回答第一个案例 这对于给定的模式很有效,但对于像a而不是a这样的更改,我将其留给您 string = [
如何做到这一点?回答第一个案例 这对于给定的模式很有效,但对于像a而不是a这样的更改,我将其留给您
string = ['A1', 'A5']
if string[0][0]==string[1][0]:
string=[string[0][0]+str(d) for d in range(int(string[0][1]),int(string[len(string)-1][1]))]
else:
string=[chr(d)+string[0][1] for d in range(ord(string[0][0]),ord(string[len(string)-1][0])+1)]
在else部分,您可以尝试第二种情况:回答第一种情况 这对于给定的模式很有效,但对于像a而不是a这样的更改,我将其留给您
string = ['A1', 'A5']
if string[0][0]==string[1][0]:
string=[string[0][0]+str(d) for d in range(int(string[0][1]),int(string[len(string)-1][1]))]
else:
string=[chr(d)+string[0][1] for d in range(ord(string[0][0]),ord(string[len(string)-1][0])+1)]
在else部分,您可以尝试第二种情况:您为我们提供了一个名为customRange的简单生成器:
用法:
for value in customRange(['A1', 'A5']):
print(value)
A1
A2
A3
A4
或
您为我们提供了一个名为customRange的简单生成器:
用法:
for value in customRange(['A1', 'A5']):
print(value)
A1
A2
A3
A4
或
从子字符串中提取字符和数字:
ch = "".join(c for c in l[0] if c.isalpha())
start, end = int("".join(c for c in l[0] if c.isdigit())), int("".join(c for c in l[-1] if c.isdigit()))
print(["{}{}".format(ch,i) for i in range(int(start),int(end)+1)])
['A1', 'A2', 'A3', 'A4', 'A5']
如果范围始终从1开始,则无需提取起始值。从子字符串中提取字符和数字:
ch = "".join(c for c in l[0] if c.isalpha())
start, end = int("".join(c for c in l[0] if c.isdigit())), int("".join(c for c in l[-1] if c.isdigit()))
print(["{}{}".format(ch,i) for i in range(int(start),int(end)+1)])
['A1', 'A2', 'A3', 'A4', 'A5']
如果范围始终从1开始,则不需要提取起始值。例如“A1”和“C3”之间的顺序是什么?A1、A2、A3、B3、C3、A1、B1、C1、C2、C3、A1、A2、A3、B1、B2、B3、C1、C2、C3?如果你知道这个模式,你可以使用例如map'A{}格式,range1,3+1。这个序列在excel中只按行或列排列。例如'A1'和'C3'之间的序列是什么?A1、A2、A3、B3、C3、A1、B1、C1、C2、C3、A1、A2、A3、B1、B2、B3、C1、C2、C3?如果您知道模式,则只需使用例如map'A{}。format,range1,3+1。序列仅按excel中的行或列排列。请将start=和end=分为两行。scollbar会影响可读性请将start=和end=放在两行中。scollbar会影响可读性