给定一个list如下, 请将所有的*号排列到左侧, 不引入新的list
方法一:
list5 = ['*','-','#','*','*','&','*','_','*','-','%','*','-','-','*']
for i in range(1,len(list5)):
for j in range(0,len(list5)-i):
if list5[j] != '*':
list5[j],list5[j+1]=list5[j+1],list5[j]
print(list5)
方法二:
list5 = ['*','-','#','*','*','&','*','_','*','-','%','*','-','-','*']
for i in range(1,len(list5)):
for j in range(0,len(list5)-i):
if list5[j+1]=='*'and list5[j]!='*':
list5[j + 1],list5[j]=list5[j],list5[j+1]
print(list5)
方法三:
list1 = ['*','-','#','*','*','&','*','_','*','-','%','*','-','-','*']
for i in range(1,len(list1)):#1,2,3,4,5,6,7,i为所有元素统一参与比较的轮数
for j in range(0,len(list1)-i):#j为元素的下标位置
if list1[j+1]=='*' and list1[j]!='*':
list1[j+1],list1[j]=list1[j],list1[j+1]
print(list1)
方法四:
list5 = ['*','-','#','*','*','&','*','_','*','-','%','*','-','-','*']
for i in range(1,len(list5)):
for j in range(-1,-(len(list5)-i),-1):
if list5[j]=='*':
list5[j - 1],list5[j]=list5[j],list5[j-1]
print(list5)
方法五:
list5 = ['*','-','#','*','*','&','*','_','*','-','%','*','-','-','*']
for i in range(1,len(list5)):
for j in range(-1,-(len(list5)),-1):
if list5[j]!='*'and list5[j-1]=='*':
list5[j],list5[j-1]=list5[j-1],list5[j]
print(list5)