Hướng dẫn how to compare two numbers in a list python - cách so sánh hai số trong python danh sách

Tôi đang tìm kiếm một cách để so sánh hai mục liền kề trong danh sách, ví dụ. So sánh có giá trị cao hơn, và sau đó tôi sẽ sắp xếp chúng cho phù hợp. Đây là danh sách mà người dùng sẽ nhập, vì vậy nó không phải là trường hợp chỉ là if l[1] > l[2], vì tôi sẽ không biết độ dài của danh sách, vì vậy tôi sẽ cần một tuyên bố chung để sử dụng trong một vòng lặp.

Tôi đã có ý tưởng có một cái gì đó gần giống với for i in l: if x > i[index of x + 1] nhưng không biết làm thế nào để tìm chỉ số của biến. Bất kỳ sự giúp đỡ nào được đánh giá cao, cảm ơn bạn

Chỉnh sửa: Tôi biết về chức năng sắp xếp tích hợp, nhưng chỉ muốn thực hành mã hóa và viết thuật toán bằng cách tạo của riêng tôi :]

Đã hỏi ngày 23 tháng 12 năm 2012 lúc 16:21Dec 23, 2012 at 16:21

Ricochet_BunnyRicochet_BunnyRicochet_Bunny

5373 Huy hiệu vàng8 Huy hiệu bạc19 Huy hiệu đồng3 gold badges8 silver badges19 bronze badges

1

Bạn có thể sử dụng zip[]:

In [23]: lis = [1,7,8,4,5,3]

In [24]: for x, y in zip[lis, lis[1:]]:
   ....:     print x, y           # prints the adjacent elements
             # do something here
   ....:     
1 7
7 8
8 4
4 5
5 3

Đã trả lời ngày 23 tháng 12 năm 2012 lúc 16:25Dec 23, 2012 at 16:25

Ashwini Chaudharyashwini ChaudharyAshwini Chaudhary

237K56 Huy hiệu vàng447 Huy hiệu bạc497 Huy hiệu đồng56 gold badges447 silver badges497 bronze badges

1

Giải pháp nhanh chóng và tương đương sẽ là điều này [không sử dụng nó!]:

for i, item in enumerate[lst]:
    # here you can use lst[i + 1] as long as i + 1 < len[lst]

Tuy nhiên, đừng thực hiện danh sách sắp xếp một mình! Sử dụng .sort[] để sắp xếp tại chỗ hoặc

for i, item in enumerate[lst]:
    # here you can use lst[i + 1] as long as i + 1 < len[lst]
0 nếu bạn muốn tạo một danh sách mới thay thế. Có một hướng dẫn thực sự tốt về cách sắp xếp mọi thứ trên trang web Python.do not implement list sorting by yourself! Use .sort[] to sort in-place or
for i, item in enumerate[lst]:
    # here you can use lst[i + 1] as long as i + 1 < len[lst]
0 if you want to create a new list instead. There is a really good guide on how to sort things on the python website.

Nếu đó không phải là ý định của bạn .. Thay vì vòng lặp tôi đã đăng ở trên thì cũng có một cách đẹp hơn để lặp lại các phần từ một danh sách trong một câu hỏi khác:

import itertools
def grouper[n, iterable, fillvalue=None]:
    "grouper[3, 'ABCDEFG', 'x'] --> ABC DEF Gxx"
    args = [iter[iterable]] * n
    return itertools.izip_longest[fillvalue=fillvalue, *args]

Bạn sử dụng để thích điều này:

for x, y in grouper[2, lst]:
    # do whatever. in case of an odd element count y is None in the last iteration

Đã trả lời ngày 23 tháng 12 năm 2012 lúc 16:23Dec 23, 2012 at 16:23

ThiefmasterthiefmasterThiefMaster

303K79 Huy hiệu vàng582 Huy hiệu bạc625 Huy hiệu Đồng79 gold badges582 silver badges625 bronze badges

2

Bạn cũng có thể sử dụng chức năng giảm dần

ví dụ. :

l = [1,2,3,4,5,6,7]

def my_function[a,b]:
    # your comparison between a and b
    # return or print values or what ever you want to do based on the comparison


reduce[my_function, l]

Giảm sẽ tự động chăm sóc I và I + 1.

Hy vọng nó giúp. :]

Đã trả lời ngày 24 tháng 12 năm 2012 lúc 5:48Dec 24, 2012 at 5:48

SomeshsomeshSomesh

1.1852 huy hiệu vàng12 Huy hiệu bạc29 Huy hiệu đồng2 gold badges12 silver badges29 bronze badges

1

Có được tích hợp trong chức năng CMP, mà bạn có thể sử dụng để so sánh

Tôi cần kiểm tra xem tất cả các mục trong danh sách có giống hệt nhau không, vì vậy tôi đã làm điều này:

def compare[x, y]:
    if x == y:
        return x
    return False

reduce[compare, my_list]

Khi bạn chạy cái này với nói [1,1,1,1,1,1], nó in 1, khi một trong số không khớp, nó sẽ trả về sai .. đơn giản

Đã trả lời ngày 29 tháng 1 năm 2014 lúc 13:23Jan 29, 2014 at 13:23

Lu.nemecLu.nemecLu.nemec

4566 Huy hiệu bạc10 Huy hiệu Đồng6 silver badges10 bronze badges

1

Làm thế nào để bạn so sánh hai số nguyên trong một danh sách trong Python?

Nó nên hoạt động như sau: list1 = [1,1,1,1] list2 = [2,1,2,3] so sánh [list1, list2] # Trả về phản hồi "Danh sách 1 là = Danh sách 2".compare[list1,list2] # returns a "list 1 is = list 2" response.

Bạn có thể sử dụng == cho các danh sách trong Python không?

Một cách đơn giản để kiểm tra sự bình đẳng của hai danh sách trong Python là bằng cách sử dụng toán tử Equality ==. Khi bình đẳng == được sử dụng trên loại danh sách trong Python, nó sẽ trả về đúng nếu các danh sách bằng nhau và sai nếu chúng không.. When the equality == is used on the list type in Python, it returns True if the lists are equal and False if they are not.

Làm thế nào để bạn so sánh hai giá trị danh sách?

So sánh hai danh sách trong Excel..
Phương pháp 1: So sánh hai danh sách bằng toán tử dấu hiệu bằng nhau ..
Phương pháp 2: Kết hợp dữ liệu bằng cách sử dụng kỹ thuật khác biệt hàng ..
Phương pháp 3: Kết hợp chênh lệch hàng bằng cách sử dụng nếu điều kiện ..
Phương pháp 4: Kết hợp dữ liệu ngay cả khi có sự khác biệt hàng ..
Phương pháp 5: Đánh dấu tất cả các dữ liệu phù hợp bằng cách sử dụng định dạng có điều kiện ..

Làm thế nào để bạn so sánh hai giá trị trong Python?

== và là hai cách để so sánh các đối tượng trong Python.== So sánh 2 đối tượng cho sự bình đẳng và là so sánh 2 đối tượng cho danh tính ...
Ví dụ 1 so sánh 2 chuỗi.....
Ví dụ 2 tạo danh sách A và B cuối cùng đề cập đến cùng một đối tượng ..

Bài Viết Liên Quan

Chủ Đề