我們?cè)趯懘a的過(guò)程中,會(huì)經(jīng)常使用到for循環(huán),去循環(huán)列表,那么如果我們拿到一個(gè)類型為str的列表,對(duì)它進(jìn)行for循環(huán),結(jié)果看下面的代碼和圖:

            
              str_list = str(['a','b','c'])

for row in str_list:
    print(row)
            
          

結(jié)果:
Python 字符串類型列表轉(zhuǎn)換成真正列表類型_第1張圖片

那么for循環(huán)就把str類型的列表的每一個(gè)字符都一個(gè)一個(gè)的循環(huán)的打印出來(lái),而這個(gè)結(jié)果并不是我們想要的,那么如何解決這個(gè)問(wèn)題?,使用到第三方模塊,看下面的代碼

            
              from ast import literal_eval

# 假設(shè)拿到了一個(gè)str類型的列表
str_list = str(['a','b','c'])

print(type(str_list)) # 
              
                

# 通過(guò) literal_eval 這個(gè)函數(shù),將str類型的列表轉(zhuǎn)換成類型為list的真正的列表類型
new_list = literal_eval(str_list)

print(type(new_list)) # 
                
                  

# 然后就可以通過(guò)for循環(huán)獲取到列表中的每一個(gè)值
for row in new_list:
     print(row)

# 執(zhí)行結(jié)果
'''
a
b
c
'''
                
              
            
          

ast 的literal函數(shù) 會(huì)判斷需要計(jì)算的內(nèi)容計(jì)算后是不是合法的python類型,如果是則進(jìn)行運(yùn)算,否則就不進(jìn)行運(yùn)算