Beim Erlernen von Python ist die schnelle Sortierfunktion der Liste ein Pflichtkurs für uns. Um eine Methode zum schnellen Einfügen einer geordneten Sequenz vorzustellen, schauen wir uns zunächst die Unterschiede und Zusammenhänge zwischen den beiden Sortierfunktionen an. Schauen wir uns zunächst sort() an. Schauen Sie sich bitte den folgenden Code an:
import random # 随机生成10个100以内的整数 example_list = [random.randint(1,100) for i in range(10)] # 对他们进行排序 example_list.sort() print(example_list) >>> [22, 28, 35, 47, 49, 55, 68, 79, 87, 98]
Es ist zu beachten, dass die Funktion **sort()** hier nicht vorhanden ist Beliebiger Rückgabewert, aber Sortierung vor Ort, siehe folgenden Code:
import random example_list = [random.randint(1,100) for i in range(10)] example_list_sort_test = example_list.sort() print(example_list_sort_test) >>> None
Wenn wir eine neue Variable verwenden, um den sortierten Inhalt zu empfangen, stellen wir fest, dass wir None erhalten. Aber **sorted()** ist genau das Gegenteil. Es wird eine neue Variable zum Speichern der sortierten Liste generiert. Bitte schauen Sie sich den folgenden Code an:
import random example_list = [random.randint(1,100) for i in range(10)] example_list_sorted_test = sorted(example_list) print(example_list_sorted_test) >>> [6, 14, 14, 20, 28, 50, 58, 58, 71, 83]
Wie Sie sehen können, verwenden wir **. sorted ()** Beim Sortieren wird ein neuer Variablenspeicher generiert und von uns abgerufen.
Natürlich haben die von den beiden Sortierfunktionen verwendeten Parameter weitgehend den gleichen Inhalt:
import random # 导入 random 模块,用于生成随机数 # 创建一个包含 10 个随机整数的列表,每个数的范围在 1 到 100 之间 example_list_argTest = [random.randint(1, 100) for i in range(10)] # 将列表按升序排序并打印输出 example_list_argTest.sort() print(example_list_argTest) # 将列表按降序排序并打印输出 example_list_argTest.sort(reverse=True) print(example_list_argTest) # 创建一个包含三个子列表的列表 example_list_argTest_02 = [[5, 7], [1, 8], [9, 6]] print(example_list_argTest_02) # 对子列表按第一个元素排序并打印输出 example_list_argTest_02.sort() print(example_list_argTest_02) # 对子列表按第二个元素排序并打印输出 def takeSecond(test_list): return test_list[1] example_list_argTest_02.sort(key=takeSecond) print(example_list_argTest_02) # 创建一个包含四个字符串的列表 example_list_argTest_03 = ['apple', 'big apple', 'pear', 'hen'] print(example_list_argTest_03) # 对字符串按长度排序并打印输出 example_list_argTest_03.sort(key=len) print(example_list_argTest_03) >>>[4, 18, 26, 41, 43, 52, 77, 77, 97, 98] >>>[98, 97, 77, 77, 52, 43, 41, 26, 18, 4] >>>[[5, 7], [1, 8], [9, 6]] >>>[[1, 8], [5, 7], [9, 6]] >>>[[9, 6], [5, 7], [1, 8]] >>>['apple', 'big apple', 'pear', 'hen'] >>>['hen', 'pear', 'apple', 'big apple']
bisect_left() und bisect_right() Offensichtlich besteht der Hauptunterschied darin, dass die eine den Index der linken Einfügung zurückgibt und die andere will Gibt den Index rechts von der Einfügung zurück. Schauen Sie sich bitte das folgende Beispiel an:
import bisect example_list = [random.randint(1,100) for i in range(10)] example_list.sort() print(example_list) left_index = bisect.bisect_left(example_list_sorted_test,58) print(left_index) right_index = bisect.bisect_right(example_list_sorted_test,58) print(right_index) >>>[9, 11, 16, 22, 40, 59, 60, 68, 83, 99] >>>6 >>>8
test_list = list(range(10)) print(test_list) # 指定区间搜索插入 bisect.bisect_left(test_list, 2, 3, 5) >>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>>3
In diesem Beispiel Wir geben an, dass das gesuchte Intervall eingefügt wird und die Indexposition der Einfügung zurückgegeben wird.
Verwenden Sie insort, um Elemente in eine geordnete Sequenz einzufügen.
import bisect sorted_list_example = [1, 3, 4, 6, 8, 9, 11] bisect.insort(sorted_list_example, 7) print(sorted_list_example ) >>> [1, 3, 4, 6, 7, 8, 9, 11]
Im obigen Beispiel haben wir die benutzerdefinierte Variable in das geordnete Array eingefügt.
Ein Anwendungsbeispiel
def grade(score, breakpoints = [60,70,80,90], grades='FDCBA'): index = bisect.bisect(breakpoints, score) return grades[index] random_grades = [random.randint(1,100) for i in range(10)] print(random_grades) print([grade(s) for s in random_grades]) >>>[27, 28, 35, 89, 20, 61, 20, 89, 53, 92] >>>['F', 'F', 'F', 'B', 'F', 'D', 'F', 'B', 'F', 'A']
Das obige ist der detaillierte Inhalt vonWie füge ich mit Python schnell Variablen in ein sortiertes Array ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!