Python divide a list of ints on every recurring specific int in list

python list
python find groups of consecutive numbers in list
python check if list has consecutive numbers
python sort list
python enumerate
find sequence of numbers in list python
find consecutive integers in list python
python check if list contains integers

How can I change a list like

[30,20,0,48,20,10,20,0,30]

to:

[[30,20],[48,20,10,20],[30]]

by dividing it everytime there is a 0 in the list? I have tried many ways but they all take up too much lines to make sense (10 lines). I have looked at many list-splitting questions on stack overflow and I cant find anything that works.

EDIT:

I was asking if there was any way to do list.split(0) or something like that, but it appears that the answer is that there is no way to do that. I wanted to know if I can do it in one line or if there is any way I can use a common module. I have already tried doing it in multiple lines, it has worked, but I think it is inconvenient.

EDIT 2:

The code I tried was:

list = [30,20,0,48,20,10,20,0,30]  #1, 1 list
newlist = []                       #2, 2 lists
addinglist = []                    #3, 3 lists
for x in list:                     #4
    if x == 0:                     #5
        newlist.append(addinglist) #6
        addinglist = []            #7
    else:                          #8
        addinglist.append(x)       #9 
newlist.append(addinglist)         #10
list = newlist                     #11 lines, 3 lists.
print(addinglist)

The code requires 11 lines and 3 lists (one getting modified and the other two are useless).

This works:

x=[10,20,30,0,4,5,6,0,1,1,1,1,1,1,0,1]

output=[]
temp=[]
for i in x:
    if i==0:
        output.append(temp)
        temp=[]
    else:
        temp.append(i)
output.append(temp)

Where output is:

[[10, 20, 30], [4, 5, 6], [1, 1, 1, 1, 1, 1], [1]]

The code quite short, but I'm sure there are solutions that are more succinct.

Python, Given a list of integers, write a Python program to find groups of strictly increasing numbers. It makes use of a for loop and in every iteration, it checks if the next element A variable 'prev' is used for keeping the record of previous integer and start is used for Cycle generates an infinitely repeating series of values. A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

Python List Tutorial: Lists, Loops, and More! – Dataquest, Learn how to master lists with this Python list tutorial. a float; The text “USD” as a string; The rating count 2,974,676 as an integer; The user rating 3.5 as a float Each element (data point) in a list has a specific number associated with it, we see that a process keeps repeating: we select the last list element for each list  Python | Converting all strings in list to integers Interconversion between data types is facilitated by python libraries quite easily. But the problem of converting the entire list of string to integers is quite common in development domain.

I wanted to know if I can do it in one line or if there is any way I can use a common module.

Yes, to both. You're trying to group data so groupby in itertools is your friend:

from itertools import groupby

data = [30, 20, 0, 48, 20, 10, 20, 0, 30]

result = [list(group) for non_zero, group in groupby(data, lambda n: n != 0) if non_zero]

print(result)

OUTPUT

> python3 test.py
[[30, 20], [48, 20, 10, 20], [30]]
> 

We're using a key function to bundle the data based on whether it's zero or not. The group variable contains the bundles; the non_zero variable (aka key) is a boolean indicating if it's a bundle we want.

How to Use sorted() and sort() in Python – Real Python, In this example, a list of integers is defined, and then sorted() is called with the numbers We will cover the specific order of the output and why it is that way shortly: >>> >>> string_value = 'I like to sort' >>> sorted_string = sorted(​string_value.split()) > Each element in mixed_numbers has int() called on it to convert any str  The python function randint can be used to generate a random integer in a chosen interval [a,b]: >>> import random >>> random.randint(0,10) 7 >>> random.randint(0,10) 0 A list of random numbers can be then created using python list comprehension approach:

Computational Science and Its Applications – ICCSA 2019: 19th , The selection mechanism was accomplished through a Python® script. As such, each frequency was multiplied by 100 and rounded to an integer value. The list contained a unique identifier and a reference to a seat, repeated the This method consists in dividing the global volume into smaller elements until it is​  Because dividing two ints used to return an int (discarding the floating point part) and people freaked out about it enough that the default behavior of division changed from Python 2 to Python 3: [code]Python 2.7.14 (v2.7.14:84471935ed, Sep 16 20

(Tutorial) Python List Comprehension, Instead, you store all of these values in a Python list. be of the same type: they can be a combination of boolean, String, integer, float values. If you only want to extract expression for a specific set of data from the entire collection, First, you will define the expression that will divide the expression by 2;. Here is another surprise, In Python 3, ‘/’ operator does floating point division for both int and float arguments. # A Python 3 program to demonstrate use of # "/" for both integers and floating points print (5/2) print (-5/2) print (5.0/2) print (-5.0/2) Output: 2.5 -2.5 2.5 -2.5 Behavior of “//” is

3. An Informal Introduction to Python, 4 >>> (50-5*6)/4 5.0 >>> 8/5 # Fractions aren't lost when dividing integers 1.6 To do integer division and get an integer result, discarding any Strings can be concatenated (glued together) with the + operator, and repeated with *: are immutable, it is possible to change individual elements of a list:. Looking to modify an item within a list in Python? If so, I’ll show you the steps to accomplish this goal using a simple example. Steps to Modify an Item Within a List in Python Step 1: Create a List. To start, create a list in Python. For demonstration purposes, I created a list of names using this syntax:

Comments
  • It looks like you want us to write some code for you. While many users are willing to produce code for a coder in distress, they usually only help when the poster has already tried to solve the problem on their own. A good way to demonstrate this effort is to include the code you've written so far (forming a minimal reproducible example), example input (if there is any), the expected output, and the output you actually get (output, tracebacks, etc.). The more detail you provide, the more answers you are likely to receive. Check the tour and How to Ask.
  • Starting a result list, starting a running list, appending to the running list as long as a condition holds true, and appending the current list and starting a new one every time it doesn't is a very common task. Please demonstrate that you've tried something yourself first.
  • As stated in How to Answer, please avoid answering unclear, overly-broad, typo, unreproducible, or duplicate questions. Write-my-code requests and low-effort homework questions are off-topic for Stack Overflow and more suited to professional coding/tutoring services. Good questions adhere to How to Ask, include a minimal reproducible example, have research effort, and have the potential to be useful to future visitors. Answering inappropriate questions harms the site by making it more difficult to navigate and encouraging further such questions, which can drive away other users who volunteer their time and expertise.
  • If this is inappropriate for SO, sombody tell me and I'll delete/edit it.
  • @SnootierBaBoon Just remember to also put what you tried. If this answer helped you 'sooo much', please accept it.
  • This can be shortened to final = [] and [final.append([]) if elem == 0 else final[-1].append(elem) for elem in [0]+x] using a list comprehension, and it will be two lines.