Hướng dẫn how to find the minimum value in a text file python - cách tìm giá trị nhỏ nhất trong tệp văn bản python

Tôi có tệp

30 5.882973099631601
0, chứa dữ liệu như thế này:

...
30 5.882973099631601
31 6.035463584639685
32 6.184276444600495
33 6.3336851616329435
34 6.492617147379082
35 6.683538372963013
36 6.841228384748939
37 6.999432758805214
...

Bây giờ tôi muốn tìm giá trị tối thiểu (cột thứ hai), nhưng tôi muốn hiển thị nó với giá trị từ cột đầu tiên. Vì vậy, trong trường hợp đó, tôi muốn in hàng này, như một hàm tối thiểu và giả sử trông như thế này:

30 5.882973099631601

Tôi đã cố gắng làm điều này với mã đó, nhưng tôi bị mắc kẹt.

 with open('measurements.txt', 'a') as j:
        j.write(str(r))
        j.write(" ")
        j.write(line[24:])
        j.write('\n')
        j.close()

Hướng dẫn how to find the minimum value in a text file python - cách tìm giá trị nhỏ nhất trong tệp văn bản python

Đã hỏi ngày 3 tháng 12 năm 2018 lúc 10:48Dec 3, 2018 at 10:48

7

import csv

# preparing data - converting to array
rows = []
with open('sample.txt', mode='r') as infile:
    reader = csv.reader(infile, delimiter=" ")
    for row in reader:  # each row is a list
        rows.append(row)

# lambda function to filter min considering the second column
minimus = min(rows, key=lambda x: float(x[1]))

# done
print(minimus)

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

MaedamaedaMaeda

1.27314 Huy hiệu bạc16 Huy hiệu đồng14 silver badges16 bronze badges

1

Để có được hàng có giá trị tối thiểu:

min_row = ''  
min_val = 1000000                   # Considering this value to be the highest
'''
Loop for reading rows in source file
'''
a, b = row.split(' ')
b = float(b)
if b < min_val:
    min_val = b
    min_row = row
'''
End of loop
'''

Sau đó, viết 'min_row' trong tệp mới.

Đã trả lời ngày 3 tháng 12 năm 2018 lúc 11:25Dec 3, 2018 at 11:25

Hướng dẫn how to find the minimum value in a text file python - cách tìm giá trị nhỏ nhất trong tệp văn bản python

Nitin Pawarnitin PawarNitin Pawar

1681 Huy hiệu bạc10 Huy hiệu đồng1 silver badge10 bronze badges

Cho đến nay, mã của tôi tìm thấy số lớn nhất trong tệp văn bản nhưng nó không tìm thấy số nhỏ nhất, khi nó chạy số nhỏ nhất vẫn là 0 trong khi lớn nhất là 9997.

integers = open('numbers.txt', 'r') # opens numbers.txt

largestInt = 0 # making variables to store the largest/smallest int
smallestInt = 0

# loop where we check every line for largest/smallest int
for line in integers:
    while largestInt <= line.strip():
        largestInt = line
    while smallestInt >= line.strip():
        smallestInt = line
    
# print results
print "Smallest = ", smallestInt
print "Largest = ", largestInt

Đây là tệp number.txt, đã quyết định sử dụng pastebin lần đầu tiên vì có một loạt các giá trị số nguyên bao gồm các tiêu cực. http://pastebin.com/k2w92k80

Có gì sai ở đây? Nếu tôi đang làm điều gì đó sai, hoặc logic không chính xác, xin vui lòng sửa cho tôi.

Kiến thức của tôi với Python: Noob sớm, đã học Python trong lớp ICS trong vài tháng nay.

Cảm ơn

edit:

Tôi muốn nói cảm ơn CDCFormatc vì đã giải thích những gì tôi đang làm sai. Tôi hiểu tại sao mã của tôi hoạt động bây giờ!

Mã cuối cùng:

integers = open('numbers.txt', 'r') # opens numbers.txt

largestInt = 0 # making variables to store the largest/smallest int
smallestInt = 0

# loop where we check every line for largest/smallest int
for line in integers:
    if largestInt <= int(line.strip()): # converted a string into an int
        largestInt = int(line.strip()) # made that int into largestInt
    if smallestInt >= int(line.strip()): # converted a string into an int
        smallestInt = int(line.strip()) # made that int into smallestInt
    
integers.close() # closes the file

# print results
print "Smallest = ", smallestInt
print "Largest = ", largestInt

Kết quả

Smallest =  -9993
Largest =  9997

Hướng dẫn how to find the minimum value in a text file python - cách tìm giá trị nhỏ nhất trong tệp văn bản python

11 năm trước

Tôi đang cố gắng tìm các giá trị tối đa và tối thiểu từ một tệp văn bản chứa dữ liệu theo hàng và cột. Nhưng tôi muốn tạo một tập lệnh sẽ bỏ qua một vài dòng đầu tiên và tính toán tối đa và tối thiểu từ đó trở đi. Tôi biết về các hàm tối đa và tối thiểu trong Python, nhưng tôi không chắc làm thế nào để chỉ định phạm vi. Tôi biết tôi có thể làm một cái gì đó như sau:

f = open('data.txt', 'r') # Open file

data = f.readlines() # Read lines in the file

for range(2,...): # Define the range. Is there a way to not close the range? 
                  # I mean, I don't want to specify an end for the range.
    max(data)
    min(data)

print max(data), min(data)

Xin lỗi vì bất kỳ sai lầm nào vì tôi mới đối với Python.

Được chỉnh sửa 11 năm trước bởi Sonicx vì: N/A

Câu trả lời được đề xuất

Bạn nên lặp lại các dòng của tệp, không phạm vi. Bên trong bạn có thể kiểm tra dòng đó là một điều thú vị hay không. Xen kẽ bạn có thể phân chia toàn bộ tệp (sau khi đọc một vài dòng đầu tiên cho vòng lặp với phương thức tiếp theo hoặc đọc) để các từ và lặp lại chúng bỏ qua các từ

Nhảy để đăng

Tất cả 3 câu trả lời

Hướng dẫn how to find the minimum value in a text file python - cách tìm giá trị nhỏ nhất trong tệp văn bản python

Trustytony888 poster đồng nghiệp của nhóm Pymod 888 pyMod Team Colleague Featured Poster

11 năm trước

Bạn nên lặp lại các dòng của tệp, không phạm vi. Bên trong bạn có thể kiểm tra dòng đó là một điều thú vị hay không. Thay thế bạn có thể chia toàn bộ tệp (sau khi đọc một vài dòng đầu tiên cho vòng lặp với phương thức tiếp theo hoặc đọc) để các từ và lặp lại chúng bỏ qua các từ không phải là số với thử, .. ngoại trừ.

Hướng dẫn how to find the minimum value in a text file python - cách tìm giá trị nhỏ nhất trong tệp văn bản python

11 năm trước

Vì vậy, tôi nên chỉ định những dòng tôi muốn đọc trong hàm readlines ()?

Hướng dẫn how to find the minimum value in a text file python - cách tìm giá trị nhỏ nhất trong tệp văn bản python

woooee814 gần một maven đăng 814 Nearly a Posting Maven

11 năm trước

Bạn có thể cắt bỏ hai hồ sơ đầu tiên.

f = open('data.txt', 'r') # Open file
 
data = f.readlines()
data = data[2:]
f.close()

print max(data), min(data)

Nhưng điều này có thể hoặc không cung cấp cho bạn những gì bạn muốn tùy thuộc vào các giá trị và loại giá trị trong dữ liệu.

Được chỉnh sửa 11 năm trước bởi Woooee vì: N/A

Trả lời chủ đề này

Là một phần của cộng đồng Daniweb

Chúng tôi là một cộng đồng thân thiện, tập trung vào ngành của các nhà phát triển, các chuyên gia CNTT, nhà tiếp thị kỹ thuật số và những người đam mê công nghệ gặp gỡ, học tập và chia sẻ kiến ​​thức.

Làm thế nào để bạn tìm thấy số cao nhất trong một tệp văn bản Python?

Python Max ()..
Max () với các lập luận có thể lặp lại.Cú pháp tối đa ().Để tìm ra mục lớn nhất trong một điều khác, chúng tôi sử dụng cú pháp này: tối đa (có thể sử dụng được, *iterables, khóa, mặc định) tối đa) tham số.....
Max () mà không có sự khác biệt.Cú pháp tối đa ().Để tìm đối tượng lớn nhất giữa hai hoặc nhiều tham số, chúng ta có thể sử dụng cú pháp này: MAX (Arg1, Arg2, *Args, khóa).

Làm thế nào để bạn tìm thấy chỉ số của một giá trị tối thiểu trong Python?

Hàm Inbuilt của Python cho phép chúng tôi tìm thấy nó trong một dòng, chúng tôi có thể tìm thấy mức tối thiểu trong danh sách bằng hàm min () và sau đó sử dụng hàm index () để tìm ra chỉ mục của phần tử tối thiểu đó.using the min() function and then use the index() function to find out the index of that minimum element.