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

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

將帶有一個(gè)鍵和兩個(gè)值的字典寫入 csv 文件

將帶有一個(gè)鍵和兩個(gè)值的字典寫入 csv 文件

慕運(yùn)維8079593 2021-11-02 13:55:24
我有一本字典,有一個(gè)鍵和兩個(gè)值。我想將字典寫入 csv 文件,并根據(jù)其中一個(gè)值進(jìn)行排序。我還希望每個(gè)值在 csv 文件中都有自己的列。我好像做不到sorted_combined = sorted(combined.items(), key = lambda kv: kv[1][1])with open('output.csv', 'wb') as output:   writer = csv.writer(output)   writer.writerow(["Subject", "Sij", "gij"])for key, value in sorted_combined.iteritems():   writer.writerow(k, sorted_combined[k])我知道有些人說嘗試 writer.writerow([k] + sorted_combined) 或 writer.writerow(key, *value)并且沒有一個(gè)工作。我得到的錯(cuò)誤消息是:無法連接元組。我期望得到的是以下內(nèi)容: Subject     Sij      gij sub001_01   6578     18 sub992_03   3820     5*****EDIT******** 這就是我的 sorted_combined 的樣子.. 然而,例如你在最后看到的 (1,6) 它不再是一個(gè)元組,它是一個(gè)字符串。在命名字典鍵時(shí),每個(gè)元組都被轉(zhuǎn)換為一個(gè)字符串。[('network6_QNS_0045_01_(1, 6)', (0.0, 0.0)), ('network6_QNS_0045_01_(1, 4)', (0.0, 0.0)), ('network6_QNS_0045_01_(0, 0.0)', (0.0), 0.0) ), ('network6_QNS_0045_01_(2, 5)', (0.0, 0.0)), ('network6_QNS_0045_01_(1, 7)', (0.0, 0.0)), ('network6_QNS_0045_01_,'(1, 0.0)) )), ('network6_QNS_0045_01_(1, 3)', (0.0, 0.0)), ('network6_QNS_0045_01_(5, 6)', (0.0, 0.0)), ('network6_QNS_0045_01),'(3, 05) 0.0)),( 'network6_QNS_0045_01_(2,6)',(743466.0,18.387329999999999)),( 'network6_QNS_0045_01_(5,7)',(142774.0,18.769649999999999)),( 'network6_QNS_0045_01_(0,5)',(232822.0 , 20.160640000000001)), ('network6_QNS_0045_01_(3, 6)', (780163.0, 24.748139999999999), ('network6_QNS_0045_0999), ('network6_QNS_0045_039_0045_039_0),039_0045_039(039),036(039),036(039),0045_039_0396(039)0network6_QNS_0045_01_(4,7)”,(2248433.0,
查看完整描述

2 回答

?
達(dá)令說

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

我編輯了我的答案,您沒有使用字典。你有一個(gè)元組列表。


import csv 

with open('output.csv', 'wb') as f:

    writer = csv.writer(f)

    writer.writerow(['Subject', 'Sij', 'gij'])

    for row in sorted_combined:

        l = [row[0]]

        l.append(row[0][1])

        l.append(row[1][1])

        writer.writerow(l)

就像你在最初的嘗試中一樣, csv.writer 是要走的路


查看完整回答
反對 回復(fù) 2021-11-02
?
翻翻過去那場雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

您可以生成一個(gè)列表,將其展平并使用CSV簡單地編寫它。不過,我不知道是否有更短的方法。


import csv


my_dict = {"sub001_01": [6578,18], "sub992_03": [3820,5]}


with open('my_file.csv', 'w') as f:

    w=csv.writer(f)

    w.writerow(["Subject", "Sij", "gij"])

    for i in list(my_dict.items()):

        #We first make a list like: ['test', 1, 2, 3]

        list1=[a for a in i]

        list_final=[]

        list_final.append(i[0])

        for c in list1[1]:

            list_final.append(c)

        #We use writerow() to write our new list

        w.writerow(list_final)

輸出:


Subject,Sij,gij

sub001_01,6578,18

sub992_03,3820,5

要使用 '\t' 而不是逗號,只需指定分隔符


w=csv.writer(f,delimiter="\t")

這將產(chǎn)生:


Subject Sij gij

sub001_01   6578    18

sub992_03   3820    5

PS:這適用于 Python 3.X


編輯:忘記提及這是一個(gè)可以處理 2 個(gè)以上值的通用循環(huán)。您也可以將它與其他字典(帶有包含多個(gè)值的列表)一起使用。


查看完整回答
反對 回復(fù) 2021-11-02
  • 2 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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