亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

(如果變量中有字符串)語句未篩選出數據

(如果變量中有字符串)語句未篩選出數據

慕桂英546537 2022-08-11 17:16:55
嘗試過濾掉字符串中沒有“PC”的數據,但它似乎沒有捕獲任何內容,只是轉到其他位置。不確定csvRow是否是一個字符串,也許這就是為什么它不起作用,但我剛剛開始Python和dunno如何解釋它。csvRow 返回的示例數據:['0', '0', '30', 'Testing Unit', 'True', 'COMP_PC', 'COMP_PC']['0', '0', '30', 'Prod Unit', 'True', 'ASSM_UL', 'ASSM_UL']法典:for csvRow in reader(csvRows[2:]):    if "PC" in csvRow:         for csvValue in csvRow:            values += csvValue + "\t"        values = values[:-1] + "\r\n"    else:        continue編輯:為此拼湊出了一個解決方案,盡管我不確定它是否有效。有什么提示嗎?for csvRow in reader(csvRows[2:]):    for csvValue in csvRow:        if "PC" in csvValue:             for csvValue2 in csvRow:                values += csvValue2 + "\t"            values = values[:-1] + "\r\n"            break        else:            continue
查看完整描述

2 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

即使您想使用替代分隔符(即 而不是 ),使用csv模塊仍然是一個好主意。它將更好地產生格式良好的輸出。\t,


下面是一個示例:


import csv

import io


# Representing csvRows as a 2D array, hopefully approximating your input.

csvRows = [

    ['0', '0', '30', 'Testing Unit', 'True', 'COMP_PC', 'COMP_PC'],

    ['0', '0', '30', 'Prod Unit', 'True', 'ASSM_UL', 'ASSM_UL'],

]


# Using a StringIO instance to capture the output, alternatively you

# can easily write to a file.

results = io.StringIO()

writer = csv.writer(results, delimiter='\t')


# Process your data.

for row in csvRows:

    if any('PC' in value for value in row):

        writer.writerow(row)


# Print the results.

output = results.getvalue()

print(output)


# Use repr() to verify that each line is terminated with '\r\n'.

print(repr(output))

輸出:


$ python3 example.py

0       0       30      Testing Unit    True    COMP_PC COMP_PC


'0\t0\t30\tTesting Unit\tTrue\tCOMP_PC\tCOMP_PC\r\n'


查看完整回答
反對 回復 2022-08-11
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

想通了,正如Furas所說:


"PC" in string可以檢查“PC”是否是更長字符串的一部分。 檢查列表中是否有確切的字符串“PC” - 但它無法檢查“PC”是否是此列表中較長字符串的一部分。"PC" in list


只需要迭代列表并檢查那里。


for csvRow in reader(csvRows[2:]):

    for csvValue in csvRow:

        if "PC" in csvValue: 

            for csvValue2 in csvRow:

                values += csvValue2 + "\t"

            values = values[:-1] + "\r\n"

            break

        else:

            continue


查看完整回答
反對 回復 2022-08-11
  • 2 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號