python中list的in操作是不是二分查找

這個問題可能要去查官方文檔了。。。

❷ python的列表,有沒有查找的功能

Python中是有查找功能的,四種方式:in、not in、count、index,後兩種方式是列表的方法,下面以a_list = ['a','b','c','hello'],為例作介紹:

  1. 判斷值是否在列表中,in操作符:

    #判斷值a是否在列表中,並返回True或False
    'a'ina_lis
  2. 判斷值是否不在列表,not in操作符:

  3. #判斷a是否不在列表中,並返回True或False
    'a'notina_list
  4. 統計指定值在列表中出現的次數,count方法:

    #返回a在列表中的出現的次數
    a_list.count('a')
  5. 查看指定值在列表中的位置,index方法:

    #返回a在列表中每一次出現的位置,默認搜索整個列表
    a_list.index('a')
    #返回a在指定切片內第一次出現的位置
    a_list.index('a',0,3)

❸ python使用in操作符時元組和數組的區別分析

在python中可以來使用in符號判斷指自定的元素是否存在於列表中,但我發現元組和數組存在區別,下面是詳細實驗結果。
>>>
'test'
in
['replace','test']
True
>>>
'test'
in
('replace','test')
True
>>>
'test'
in
['test/codes','replace']
False
>>>
'test'
in
('test/codes','replace')
False
>>>
'test'
in
['test/codes']
False
>>>
'test'
in
('test/codes')
True
前面5條測試都符合我們的預期,只有最後一條,將數組換成元組後,在元組中只有一個元素的時候,python居然是把元組當成了字元串處理,不知道為什麼會有這樣的處理方式,但開發的時候卻要注意,只用in語句判斷數組中是否存在制定元素時,最好用[]的數組,而非元組

❹ Python 如何輸入一組數字存儲為列表 用for in將列表中元素加總

最後那個if-return 語句, 應該跟for是並列的 你把它寫到for循環里頭了, 因此循環只循環了第一個元素就返回了

❺ Python中列表的方法有什麼

Python中的列表內建了許多方法。在下文中,使用「L」代表一個列表,使用「x」代表方法的參數,以便說明列表的使用方法。

1 append()方法

列表的append()方法用於將一個項添加到列表的末尾,L.append(x)等價於L[len(L):] = [x]。

例如,使用append()方法分別將'cow'和'elephant'添加到animals列表的末尾:

  • >>>animals=['cat','dog','fish','dog']

  • >>>animals.append('cow')#等價於animals[4:]=['cow']

  • >>>animals

  • ['cat','dog','fish','dog','cow']

  • >>>animals.append('elephant')#等價於animals[5:]=['elephant']

  • >>>animals

  • ['cat','dog','fish','dog','cow','elephant']

  • 2 ()方法

    列表的()方法用於將一個項插入指定索引的前一個位置。L.(0, x)是將x插入列表的最前面,L.(len(L)), x)等價於L.append(x)。

    例如,使用()方法分別將'cow'和'elephant'插入animals列表:

  • >>>animals=['cat','dog','fish','dog']

  • >>>animals.(0,'cow')

  • >>>animals

  • ['cow','cat','dog','fish','dog']

  • >>>animals.(3,'elephant')

  • >>>animals

  • ['cow','cat','dog','elephant','fish','dog']

  • 3 extend()方法

    列表的extend()方法用於將可迭代對象的所有項追加到列表中。L.extend(iterable)等價於L[len(L):] = iterable。extend()和append()方法的區別是,extend()方法會將可迭代對象「展開」。

    例如,分別使用append()方法和extend()方法在animals列表後面追加一個包含'cow'和'elephant'的列表:

  • >>>animals=['cat','dog','fish','dog']

  • >>>animals.append(['cow','elephant'])#此處append()參數是一個列表

  • >>>animals

  • ['cat','dog','fish','dog',['cow','elephant']]

  • >>>animals=['cat','dog','fish','dog']

  • >>>animals.extend(['cow','elephant'])#此處extend()參數也是一個列表

  • >>>animals

  • ['cat','dog','fish','dog','cow','elephant']

  • 4 remove()方法

    列表的remove()方法用於移除列表中指定值的項。L.remove(x)移除列表中第一個值為x的項。如果沒有值為x的項,那麼會拋出ValueError異常。

    例如,使用remove()方法移除animals列表中值為'dog'的項:

  • >>>animals=['cat','dog','fish','dog']

  • >>>animals.remove('dog')

  • >>>animals

  • ['cat','fish','dog']

  • >>>animals.remove('dog')

  • >>>animals

  • ['cat','fish']

  • >>>animals.remove('dog')

  • Traceback(mostrecentcalllast):

  • File"",line1,in

  • ValueError:list.remove(x):xnotinlist

  • 5 pop()方法

    列表的pop()方法用於移除列表中指定位置的項,並返回它。如果沒有指定位置,那麼L.pop()移除並返回列表的最後一項。

    例如,使用pop()方法移除animals列表中指定位置的項:

  • >>>animals=['cat','dog','fish','dog']

  • >>>animals.pop()

  • 'dog'

  • >>>animals

  • ['cat','dog','fish']

  • >>>animals.pop(2)

  • 'fish'

  • >>>animals

  • ['cat','dog']

  • 在調用前面的列表方法後,並沒有列印任何值,而pop()方法列印了「彈出」的值。包括append()、()、pop()在內的方法都是「原地操作」。原地操作(又稱為就地操作)的方法只是修改了列表本身,並不返回修改後的列表。

    在類型轉換時使用的int()函數,str()函數都有返回值:

  • >>>number=123

  • >>>mystring=str(number)#將返回值賦給變數mystring

  • >>>mystring

  • '123'

  • 但是在使用「原地操作」時,大部分則不會有返回值,包括pop()方法也只是返回了被「彈出」的值,並沒有返回修改後的列表:

  • >>>animals=['cat','dog','fish','dog']

  • >>>new_animals=animals.append('cow')

  • >>>print(new_animals)

  • None

關於Python的基礎問題可以看下這個網頁的視頻教程,網頁鏈接,希望我的回答能幫到你。

❻ 在一個有20000多個項的python列表中用in判斷一個字元串是否在其中大概要多長時間

之前篩過4萬人的身份證號。1個人只需要一秒鍾。
這個速度應該差不離。

❼ python如何將一個全部為int的列表,轉化為全部為str的列表

解決方法一:

a=[1,2,3,4,5]

b=[str(i)foriina]

直接用List Comprehension來把每個元素轉換成str。

解決方法二:

>>> L = [1,2,3,4,5]

>>> map(str, L)

['1', '2', '3', '4', '5']

(7)python列表in方法擴展閱讀:

Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀、易維護,並且被大量用戶所歡迎的、用途廣泛的語言。

設計者開發時總的指導思想是,對於一個特定的問題,只要有一種最好的方法來解決就好了。這在由Tim Peters寫的Python格言(稱為The Zen of Python)裡面表述為:There should be one-- and preferably only one --obvious way to do it. 這正好和Perl語言(另一種功能類似的高級動態語言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。

Python的作者有意的設計限制性很強的語法,使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。其中很重要的一項就是Python的縮進規則。

一個和其他大多數語言(如C)的區別就是,一個模塊的界限,完全是由每行的首字元在這一行的位置來決定的(而C語言是用一對花括弧{}來明確的定出模塊的邊界的,與字元的位置毫無關系)。這一點曾經引起過爭議。

因為自從C這類的語言誕生後,語言的語法含義與字元的排列方式分離開來,曾經被認為是一種程序語言的進步。不過不可否認的是,通過強製程序員們縮進(包括if,for和函數定義等所有需要使用模塊的地方),Python確實使得程序更加清晰和美觀。

❽ 用python處理兩個列表 list1=[1,2,3,4] list2=[a,b,c,d] 變成list3 = [[1,a],[2,b],[3,c],[3,d]]

>>>l1=[1,2,3,4]
>>>l2=['a','b','c','d']
>>>[[x,y]fori,xinenumerate(l1)foryinl2[i]]
[[1,'a'],[2,'b'],[3,'c'],[4,'d']]
>>>

這種 必須 len(l1) == len(l2)

❾ python中str.find和 in list的區別使用

在一復個str中查找特定的制字元串,使用string1.find(substring)的語法,這種查找時一種模糊查找;
但是在一個list中,如果判斷是否包含某個項目,是一個絕對的相等的比較,空格都需要匹配;

所以使用查找匹配時可以採用的方法是:
1.將list轉化為str之後模糊匹配:

比如 if str(list1).find(substring) != -1

2.將list中的所有的字元串都去掉特殊字元以及空格;
比如:
for item in list1:
item.replace(' ','')
再用if substring in list1: