Tôi có một bộ dữ liệu trong một danh sách. Tôi không chắc chắn làm thế nào để tạo một hàm có thể lấy phạm vi của dữ liệu đó và trả về các giá trị tối đa và tối đa trong một tuple.
data:
[1,3,4,463,2,3,6,8,9,4,254,6,72]
Mã của tôi tại thời điểm này:
def getrange[data]:
result=[]
if i,c in data:
range1 = min[data]
range2 = max[data]
result.append[range1, range2]
return result
Hỏi ngày 22 tháng 8 năm 2015 lúc 4:15Aug 22, 2015 at 4:15
NinjaninjaNinja
Huy hiệu vàng 611 Huy hiệu bạc7 Huy hiệu đồng1 gold badge1 silver badge7 bronze badges
4
Đây là một câu hỏi rất thẳng thắn và bạn rất thân. Nếu những gì tôi có dưới đây không chính xác, thì xin vui lòng chỉnh sửa câu hỏi của bạn để phản ánh những gì bạn muốn.
Thử cái này.
def minmax[val_list]:
min_val = min[val_list]
max_val = max[val_list]
return [min_val, max_val]
Ngữ nghĩa
Tôi có một bộ dữ liệu trong một danh sách.
Hãy cẩn thận ở đây, bạn đang sử dụng các thuật ngữ Python một cách mâu thuẫn. Trong Python, có cả bộ và danh sách. Tôi có thể nói với bạn danh sách có nghĩa là ở đây nhưng bạn có thể nhầm lẫn mọi người trong tương lai. Hãy nhớ rằng, trong các bộ Python, bộ dữ liệu và danh sách đều khác nhau.
Dưới đây là sự khác biệt [lấy từ bình luận của Blackjack bên dưới]
Data Type | Immutable | Ordered | Unique Values
===============================================
lists | no | yes | no
tuples | yes | yes | no
sets | no | no | yes
Immutable - Kiểu dữ liệu không thể thay đổi sau khi khởi tạo.
Đã đặt hàng - Thứ tự của các yếu tố trong kiểu dữ liệu là liên tục.
Giá trị duy nhất - Kiểu dữ liệu không thể có các giá trị lặp lại.
Mike Holt
4.3521 Huy hiệu vàng15 Huy hiệu bạc23 Huy hiệu đồng1 gold badge15 silver badges23 bronze badges
Đã trả lời ngày 22 tháng 8 năm 2015 lúc 4:23Aug 22, 2015 at 4:23
Austin Aaustin aAustin A
2.8706 huy hiệu vàng25 Huy hiệu bạc41 Huy hiệu đồng6 gold badges25 silver badges41 bronze badges
7
Nếu bạn đang tìm kiếm để có được phạm vi của các số, bạn có thể sử dụng:
def getrange[numbers]:
return max[numbers] - min[numbers]
Tôi cũng đã xây dựng mã này mà bạn có thể sử dụng trong việc tìm trung bình:
def average[numbers, type=None]:
import statistics
try:
statistics.mean[numbers]
except:
raise RuntimeError['An Error Has Occured: List Not Specified [0018]']
if type == 'mean':
return statistics.mean[numbers]
elif type == 'mode':
return statistics.mode[numbers]
elif type == 'median':
return statistics.median[numbers]
elif type == 'min':
return min[numbers]
elif type == 'max':
return max[numbers]
elif type == 'range':
return max[numbers] - min[numbers]
elif type == None:
return average[numbers, 'mean']
else:
raise RuntimeError['An Error Has Occured: You Entered An Invalid Operation [0003]']
Tất cả những gì bạn cần làm là nhập average[[1, 2, 3]]
để có trung bình trung bình cho 1, 2 và 3. Đối với các lệnh khác, hãy làm
def getrange[data]:
result=[]
if i,c in data:
range1 = min[data]
range2 = max[data]
result.append[range1, range2]
return result
0 và điều này sẽ cung cấp trung bình của các số. Bạn có thể thay đổi trung bình thành: trung bình, chế độ, trung bình, tối thiểu, tối đa và phạm vimean, mode, median, min, max and rangeĐã trả lời ngày 4 tháng 11 năm 2017 lúc 3:37Nov 4, 2017 at 3:37
Richie Bendallrichie BendallRichie Bendall
6.3163 Huy hiệu vàng35 Huy hiệu bạc52 Huy hiệu Đồng3 gold badges35 silver badges52 bronze badges
1
Tôi thích chức năng
def getrange[data]:
result=[]
if i,c in data:
range1 = min[data]
range2 = max[data]
result.append[range1, range2]
return result
1 của Numpy cho khả năng nhận được nhiều phần trăm cùng một lúc:import numpy as np
print np.percentile[[1,3,4,463,2,3,6,8,9,4,254,6,72], [0, 100]]
Output:
[ 1. 463.]
[Tối thiểu là tỷ lệ phần trăm 0 %; và tối đa là 100 % tỷ lệ phần trăm.]
Nếu bạn thực sự cần kết quả trong một tuple, bạn có thể dễ dàng bọc nó với
def getrange[data]:
result=[]
if i,c in data:
range1 = min[data]
range2 = max[data]
result.append[range1, range2]
return result
2.Đã trả lời ngày 22 tháng 8 năm 2015 lúc 9:23Aug 22, 2015 at 9:23
FalkofalkoFalko
16.4K13 Huy hiệu vàng54 Huy hiệu bạc101 Huy hiệu đồng13 gold badges54 silver badges101 bronze badges
Tôi vừa làm điều này:
>>>data = [1,3,4,463,2,3,6,8,9,4,254,6,72]
>>>min_val = min[data]
>>>max_val = max [data]
>>>range_data = [min_val, max_val]
>>>print[range_data]
[1, 463]
Đã trả lời ngày 26 tháng 5 năm 2020 lúc 16:37May 26, 2020 at 16:37
1