第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python 冒泡排序失敗

python 冒泡排序失敗

白板的微信 2023-01-04 10:11:23
    我已經(jīng)編寫了這段代碼,我希望它能夠組織玩家得分。file = open("leaderboard.txt", "a")file.write(str(winnerscore)+ ": " + winner + "\n")file.close()fileReading = open("leaderboard.txt","r")lines = fileReading.read()fileReading.close()lines = lines.split("\n")for line in lines:    print(line)def bubbleSort(arr):    n = len(arr)     for i in range(n-1):         for j in range(0, n-i-1):             if arr[j] > arr[j+1] :                 arr[j], arr[j+1] = arr[j+1], arr[j] # Driver code to test above arr = int(float(lines[0]))bubbleSort(arr) print ("Sorted array is:") for i in range(len(arr)):     print ("%s" %arr[i])它產(chǎn)生這個但不對其進(jìn)行排序:76: Daniel36: Gabriel30: Perry92: Avi28: Yehuda46: Jeremy54: Mordechai96: Paul80: Pauline72: Fran不幸的是,它出現(xiàn)了這個錯誤信息:  arr = int(float(lines[0]))ValueError: could not convert string to float: '76: Daniel'How do I fix this so it sorts from highest score to lowest score?我該怎么做才能對列表中的分?jǐn)?shù)進(jìn)行排序?
查看完整描述

4 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗 獲得超4個贊

簡短的使用方法:)


import pandas as pd


df = pd.read_table('leaderboard.txt', delimiter=":", names=('scor', 'Name'))

df.sort_values(by='scor', inplace=True)

df.head()


    scor        Name

7    96        Paul

3    92         Avi

8    80     Pauline

0    76      Daniel

9    72        Fran

6    54   Mordechai

5    46      Jeremy

1    36     Gabriel

2    30       Perry

4    28      Yehuda


arr = df.values  


查看完整回答
反對 回復(fù) 2023-01-04
?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗 獲得超4個贊

發(fā)生這種情況是因為您正在比較諸如此類的項目if 76: Daniel>36: Gabriel 您可以嘗試這樣的事情


mylist=['76: Daniel','36: Gabriel','30: Perry','92: Avi','28: Yehuda','46: Jeremy','54: Mordechai','96: Paul','80: Pauline','72: Fran']


def bubbleSort(arr):

    n=len(arr)

    for i in range(n-1): 


        for j in range(0, n-i-1): 



            if int(arr[j][:2]) < int(arr[j+1][:2]) : 

                arr[j], arr[j+1] = arr[j+1], arr[j] 

bubbleSort(mylist)

print(mylist)

>>>['96: Paul', '92: Avi', '80: Pauline', '76: Daniel', '72: Fran', '54: Mordechai', '46: Jeremy', '36: Gabriel', '30: Perry', '28: Yehuda']



查看完整回答
反對 回復(fù) 2023-01-04
?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗 獲得超6個贊

import re

string1 = lines[0]

int(re.search(r'\d+', string1).group())

而不是 arr = int(float(lines[0])),嘗試使用上面的那個。String1 包含整數(shù)值。在那上面應(yīng)用冒泡排序。


查看完整回答
反對 回復(fù) 2023-01-04
?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗 獲得超7個贊

這很明顯,Python 會告訴您問題出在哪里:您正在明確嘗試將lines[0]包含字符的整個第一行 ( ) 轉(zhuǎn)換為數(shù)字。

僅提取第一行arr和這一行的后續(xù)排序是沒有用的。而且,轉(zhuǎn)換為float然后轉(zhuǎn)換int為絕對沒有必要。

如果所有數(shù)字的長度都相同(2 個字符),您可以通過簡單地忽略轉(zhuǎn)換來簡單地將行排序為字符串(而不是數(shù)字)。您可以簡單地將錯誤行更改為

arr = lines

讓你的程序工作。(當(dāng)然,或者將以下所有arr引用重命名lines為 。)

我還會刪除程序的前 3 行,它們目前與程序的其余部分無關(guān)。

在線查看結(jié)果。


查看完整回答
反對 回復(fù) 2023-01-04
  • 4 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號