Coin Flip Streak from Automate the Boring Stuff with Python
Bugs
torai(1, 10000)

This should print something around 50 %, since it's the individual count. But instead, it prints
1-streak count:  0
1-streak prob (percent):  0.0
longest streak:  19
process time:  0.046875 second


Avoid too many comments
There are too many comments in your code, which makes the code look unnecessarily convoluted. What I recommend is the usage of docstrings. IMO It isn't very important here, but its better than a million comments
def torai(seq,pop): 
    tosses = []
    for i in range(pop):
        tosses.append(random.randint(1,2))
    streak = 0
    curlongstr = 0
    longeststr = 0
    peak = []
    for i in range(len(tosses)): 
        if i == 0:  
            continue
        elif tosses[i] == tosses[i-1]: 
            streak += 1 
            if i == len(tosses)-1: 
                peak.append(streak)

        elif tosses[i] != tosses[i-1]: 
            curlongstr = copy.copy(streak) 
            if curlongstr &gt; longeststr: 
                longeststr = curlongstr
            streak = 0 
            if curlongstr &gt; streak: 
                peak.append(curlongstr)

    truepeak = []
    for i in peak: 
        truepeak.append(i+1)

    apr = []
    

    for i in truepeak:
        if i == seq:
            apr.append(i)

    print('%s-streak count: ' %seq, len(apr)) 
    print('%s-streak prob (percent): ' %seq, (len(apr)/pop)*100) 
    print('longest streak: ',longeststr + 1) 
    print('process time: ',time.process_time(), 'second\n')

    return (len(apr)/pop)*100


Simplify #1
    for i in range(len(tosses)): 
        if i == 0:  
            continue

It's clear to me that you want to skip the first element. In that case, you can specify the starting point for range()
    for i in range(1, len(tosses)): 


Simplify #2
    for i in range(pop):
        tosses.append(random.randint(1,2))

Since this is going to be an immutable sequence, use a tuple, with a generator
tosses = tuple(random.randint(1, 2) for _ in range(pop)


Simplify #3
            if curlongstr &gt; longeststr:
                longeststr = curlongstr

Your condition is simple. The new value is always the larger of the two
Just use the max() function
            longeststr = max(longeststr, curlongstr)


Simplify #4
truepeak = []
    for i in peak:
        truepeak.append(i+1)

You're creating an entirely new list, and fill it up with the exact same elements as peak except with a constant 1 added to them. Very inefficient. Either add the values with the +1 from the beginning or use the +1 where necessary.
    for i in peak:
        if i + 1 == seq:
            apr.append(i + 1)

But again, all you do with apr is get its length, so there's absolutely no point in maintaining so many lists when all you have to do is keep a counter. That also removes the need to maintain peak

Calculate tosses as you go
After removing all of the previous loops, there will still be 2 left. One for calculating the tosses and the other goes through them to calculate them. What I propose is, go through it only once, and keep track of two things. The current flip and the previous flip
def torai(seq, iterations ):
    total_streaks = 0

    previous_flip = random.randint(1, 2)
    for _ in range(1, iterations):
        current_flip = random.randint(1, 2)

        if current_flip == previous_flip:
            total_streaks += 1

        # other calculations

        current_flip = previous_flip

    print(f&quot;Total streaks: {total_streaks}&quot;)