# coding:utf-8#JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 #一个字符列表中移动所有的非小写字母到列表的前面,同时保持这些非小写字母之间的相对顺序不变#,并且保持小写字母之间的相对顺序也不变。最后,它打印出列表中索引为4的元素。
'''
p=0:初始化变量p为0,这个变量将用来记录当前已经处理过的字符序列的末尾位置。
a=["-","p","y","-","t","h","o","n","-"]:定义一个字符列表a,包含了一些小写字母和非小写字符(在这个例子中是"-")。
接下来是一个for循环,遍历列表a中的每一个元素:
for i in range(len(a))::对于列表a中的每一个索引i进行遍历。
在循环内部,首先检查当前元素a[i]是否不是小写字母:
if not("a"<=a[i]<="z")::如果a[i]不是小写字母(即不是从'a'到'z'之间的字母),则执行以下步骤。
如果当前元素不是小写字母,执行一个while循环来将这个元素移动到它应该在的位置(即所有小写字母之前):
j=i; pt=a[i]:初始化j为当前元素的索引i,并将当前元素的值保存在pt中。
while j>p::只要j(当前处理的元素的索引)大于p(已处理序列的末尾位置),就继续执行循环体。
a[j]=a[j-1]:将当前元素向前移动一位,即覆盖它前面的元素。
j=j-1:将j减1,继续向前检查。
p=j; a[j]=pt:当找到正确的位置后(即j不再大于p),更新p的值为j,并将原本的元素pt放回它应该在的位置j。
print(a):最后,打印出列表a中索引为4的元素。
'''
p=0
a=["-","p","y","-","t","h","o","n","-"]
for i in range(len(a)):
if not("a"<=a[i]<="z"):#如果a[i]不是小写字母(即不是从'a'到'z'之间的字母),则执行以下步骤。
j=i;pt=a[i]
while j>p: #这个循环作用,将当前元素向前移动一位,即覆盖它前面的元素。
a[j]=a[j-1]
j=j-1
p=j;a[j]=pt #将原本的元素pt放回它应该在的位置j。
print(a[4])