私は、1つのリストをpythonで整理するのに助けが必要です。 私が必要なのは: 私はこのようなリストを持っています:[10,50,20,'STRING',5]
、私はこのような文字列を移動することなく、このリストを整理する必要があります:[5,'STRING'10,20,50]
。それは可能ですか? ありがとう!文字列と数字でリストをソート
2つの文字列に交差があるかどうかをチェックするためにリンクされたリストを作成する必要があります。 'def Intersecao'でこれをチェックしてください。出力が順序づけされていなければなりません。バージオ '。最初の質問については
class No():
def __init__(self, valor = None, proximo = None):
self.valor = valor
self.proximo = proximo
def getValor(self):
return self.valor
def getProximo(self):
return self.proximo
def setProximo(self, novo_proximo):
self.proximo = novo_proximo
class lista():
def __init__(self, inicio = None):
self.inicio = inicio
def Inserir(self, valor):
novo_no = No(valor)
novo_no.setProximo(self.inicio)
self.inicio = novo_no
def Buscar(self, valor):
dados = self.inicio
while dados:
if dados.getValor() == valor:
return dados
else:
dados = dados.getProximo()
return None
def Intersecao (self, lista):
no = self.inicio
intersecao = []
while no != None:
if (not lista.Buscar(no.getValor())):
no = no.getProximo()
else:
if(no.getValor() == ''):
intersecao.append('VAZIO')
no = no.getProximo()
elif(no.getValor() in intersecao):
no = no.getProximo()
else:
intersecao.append(no.getValor())
no = no.getProximo()
return intersecao
def MostrarLista(self):
lista = []
dados = self.inicio
while dados:
lista.append(str(dados.getValor()))
dados = dados.getProximo()
print('->'.join(lista))
MyList = lista()
MySecondList = lista()
lista = []
lista2 = []
for i in range(40):
dado = input()
if i < 20:
lista.append(dado)
elif i >= 20:
lista2.append(dado)
for i in lista:
MyList.Inserir(i)
for i in lista2:
MySecondList.Inserir(i)
listaOrdenada = []
for elementos in sorted(MyList.Intersecao(MySecondList)):
print(elementos)
あなたは何を試しましたか? – CaptainTrunky
あなたは少なくともあなたのために仕事をしたいと思うのではなく、問題を解決しようとする試みを少なくとも提示すれば人々は助けになるでしょう、私はあなたにヒントを与えて、リストの 'STRING'文字列をポップしてリストをソートし、最後に文字列を元のインデックスに再挿入します...今すぐ試してみてください。 – Dalvenjia
あなたのソートの基準は何ですか?単なる数値ソートですか?さらに、何を試しましたか?これにあなた自身の試みを示して、あなたがどんな困難を抱えているか説明してください。 StackOverflowはコード作成サービスではありません。 *明示的なプログラミング問題のための助けを提供するコミュニティです。問題の[MCVE]を表示してください。 – idjaw