I have written a code to receive the user input as a list.
def lst_data():
lst = []
total = int(input('Number of Data: '))
for number in range(0, total):
user_data = int(input('Enter the Data: '))
lst.sort()
lst.append(user_data)
print(lst)
the output is:
[50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 68, 70, 70, 71, 72, 73, 74, 75, 76, 77, 79, 79, 80, 80, 81, 82, 84, 86, 87, 88, 89, 89, 90, 91, 83]
The next step I want to do is count every item on that list by every 6 numbers like 50-55 = ???, 56-61 = ???, 62-67 =???, and so on.
I've been trying with:
counter = 0
for i in last:
if 50 < i < 55:
counter = 1
print(counter)
it works but I have to repeat the code over and over and value in the "if statement" has to be from the user input
how can i figure this out? and I want to check if there is any way to make my code simpler
CodePudding user response:
You are first sorting then adding the element, so in your loop sorting is done first and then the last element is added. Hence its left out. So you can swap the lines like below.
Your code
def lst_data():
lst = []
total = int(input('Number of Data: '))
for number in range(0, total):
user_data = int(input('Enter the Data: '))
# First append
lst.append(user_data)
# Then sort
lst.sort()
print(lst)
Suggested code
Below is the code with list comprehension.
- loop interates over the
total
to take that many number ofinputs
- The values are then
added
to the list. - The list is then
sorted
out andprinted
def lst_data():
lst = []
total = int(input('Number of Data: '))
lst = sorted([int(input('Enter the Data: ')) for i in range(total)])
print(lst)
CodePudding user response:
def lst_data():
lst = []
total = int(input('Number of Data: '))
for number in range(0, total):
user_data = int(input('Enter the Data: '))
lst.append(user_data)
lst.sort()
print(lst)
use this code
CodePudding user response:
I think this is what you're trying to do:
def count(lo, hi, _list):
return sum(lo <= e <= hi for e in _list)
nd = int(input('Number of data items: '))
data = []
for _ in range(nd):
datum = int(input('Enter datum: '))
data.append(datum)
lo = int(input('Enter low range value: '))
hi = int(input('Enter high range value: '))
print(f'There are {count(lo, hi, data)} items in the range {lo}-{hi}')
Example:
Number of data items: 5
Enter datum: 2
Enter datum: 1
Enter datum: 3
Enter datum: 5
Enter datum: 6
Enter low range value: 1
Enter high range value: 5
There are 4 items in the range 1-5
Note:
There is no reason to sort the list