Python 字母范围

Python 字母范围,python,Python,假设我有一个像字符串=['A1','A5']这样的列表,我想创建一个新列表,它应该从A1开始,以A5结束 例如['A1','A5']->['A1','A2','A3','A4','A5'] 类似地,对于这种情况,['A1','C1']->['A1','B1','C1'] 我的方法是为A1创建一个LinkedList节点,然后在每次新创建节点时增加整数常量,然后将它们附加在一起 如何做到这一点?回答第一个案例 这对于给定的模式很有效,但对于像a而不是a这样的更改,我将其留给您 string = [

假设我有一个像字符串=['A1','A5']这样的列表,我想创建一个新列表,它应该从A1开始,以A5结束

例如['A1','A5']->['A1','A2','A3','A4','A5']

类似地,对于这种情况,['A1','C1']->['A1','B1','C1']

我的方法是为A1创建一个LinkedList节点,然后在每次新创建节点时增加整数常量,然后将它们附加在一起


如何做到这一点?

回答第一个案例

这对于给定的模式很有效,但对于像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会影响可读性