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

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

根據(jù)數(shù)字列表檢查字母

根據(jù)數(shù)字列表檢查字母

慕的地6264312 2022-06-22 17:35:37
我有一個字符串p = "asfdasdf"和一個像a = [1,3,6]我想檢查字符串中的字母,列表中的數(shù)字表示。我的意思是,'sd d' (2rd, 4th, 7th)我試過這個print(p[a])但是失敗了。我應(yīng)該怎么辦?另外,我想知道我該怎么做打?。╬[1,3,6])這在python中可能嗎?它在 R 中運行良好,但在 Python 中運行良好。
查看完整描述

4 回答

?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

a是 a list,如果你想訪問list/的任何項目,string那么你需要一個索引,你喂什么是 alist所以它不會接受這樣的。


p = "asfdasdf"

a = [1,3,6]

output = []

for i in a:

    output.append(p[i])

print(' '.join(output))


查看完整回答
反對 回復(fù) 2022-06-22
?
jeck貓

TA貢獻1909條經(jīng)驗 獲得超7個贊

我不完全確定我理解你的問題,但也許你正在尋找這樣的東西:


print([p[x] for x in a])

--> ['s', 'd', 'd']

p這會在使用 in 的索引值時創(chuàng)建字符的列表理解,a并將其打印在同一行中。


如果你想要它作為一個字符串:


print(' '.join([p[x] for x in a]))

--> s d d 

還請記住一點:代碼的整體時間復(fù)雜度不是行數(shù)的函數(shù)。換句話說,行數(shù)更少并不意味著代碼更高效(而對于 Python,通過嘗試使其更緊湊來降低代碼效率很容易)。


查看完整回答
反對 回復(fù) 2022-06-22
?
慕工程0101907

TA貢獻1887條經(jīng)驗 獲得超5個贊

你print(p[a])不是 Python 中的有效語句。如果您能夠用任何其他語言做同樣的事情,那是因為該語言的特殊功能。在 Python 中,我們也有一些特別的東西。我們稱它們?yōu)閘ist-comprehensions。


首先讓我們學(xué)習(xí),如何從您的字符串中獲取字符串字符p。


>>> p = "asfdasdf"

>>> p

'asfdasdf'

>>> a = [1,3,6]

>>> p[a[1]]

's'

>>> p[a[3]]

'd'

>>> p[a[6]]

'd'

現(xiàn)在下一步如果要構(gòu)造一個字符串這個值列表(['s', 'd', 'd'])。之后構(gòu)建一個帶有分隔符的字符串作為空格()。下面是你平時的做法


my_list = []


for a_i in a:

    my_list.append(p[a_i])

    my_list.append(" ") # adding spaces


# At the end of this above loop, my_list look like ['s', ' ', 'd', ' ', 'd', ' ']



str_out = ""

# now my_list[:-1], look like ['s', ' ', 'd', ' ', 'd'] # exclude last value

for each in my_list[:-1]:

    str_out = str_out + each


print(str_out)

# print `s d d`

列表理解


現(xiàn)在,讓我們使用一個列表推導(dǎo)來生成這個 list( [p[each] for each in a]) 并將這個輸出直接傳遞給一個內(nèi)置函數(shù)。join將負責在 list( ['s', ' ', 'd', ' ', 'd']) 中的字符串變量之間添加空格,然后將它們組合成s d d


>>> ' '.join([p[each] for each in a])

's d d'

>>>

隨著人們習(xí)慣了 python,這些變得非常方便。也少有顯著優(yōu)勢

  • 易于閱讀

  • 更小的代碼 => 更少的編譯時間,更少的維護,更少的錯誤機會

  • 更少的臨時變量


查看完整回答
反對 回復(fù) 2022-06-22
?
開滿天機

TA貢獻1786條經(jīng)驗 獲得超13個贊

您的代碼是錯誤的,因為如果計算機讀取,它將變?yōu)?/p>


p[[1, 3, 6]]

這是非法的,在 Python 中不可用,但你可以使用 for 語句!你需要使用:


使用for語句


p = "asfdasdf"

a = [1, 3, 6]


for x in a:

 print(p[x], end='')

print('')

但這是一種愚蠢的方式,所以不要使用for語句,而是使用列表推導(dǎo)


p = "asfdasdf"

a = [1, 3, 6]

print(''.join(p[x] for x in a))


查看完整回答
反對 回復(fù) 2022-06-22
  • 4 回答
  • 0 關(guān)注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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