Python help with sequences and elements?

Click For Summary
SUMMARY

The discussion focuses on replacing elements in a sequence using Python. Participants clarify that a tuple, defined as sequence = ("one", "two", "three", "four"), is immutable, meaning its elements cannot be changed directly. To modify elements, the sequence must be defined as a list, such as sequence = ["one", "two", "three"], allowing for mutable operations. The correct method to replace an element in a list is through indexing, as demonstrated with sequence[1] = "four".

PREREQUISITES
  • Understanding of Python data types: tuples and lists
  • Basic knowledge of Python indexing and mutability
  • Familiarity with Python version 3.x syntax
  • Experience with Python print statements and output
NEXT STEPS
  • Learn about Python tuples and their properties
  • Explore Python lists and their mutability features
  • Study Python indexing and slicing techniques
  • Practice modifying lists and tuples in Python 3.x
USEFUL FOR

Students learning Python programming, educators teaching data structures, and developers looking to understand mutable versus immutable types in Python.

acurate
Messages
17
Reaction score
1

Homework Statement


My professor wants us to program on Python, where we have a certain sequence, for example:
sequence = ("one", "two", "three", "four")
I need to replace one of the sequence elements (example: "one") with another element (example: instead of the word "one", I need to put "zero").

2. The attempt at a solution
I really have no idea how to do it, but I guess I have to start with.

sequence = ("one", "two", "three", "four")

Do I need to use something like:

sequence [1 : : 2]

or something else?

Would really appreciate if you guys would help.
I would appreciate even a hint or advice on which path to take to be able to write this.
 
Technology news on Phys.org
Do you need to replace it everytime it shows up? Might be able to handle this with a simple if statement. Is the sequence a while loop?
 
I think I figured it out actually! It works when I do it:

sequence = ("one", "two", "three", "four")
sequence2 = ("zero",)+sequence[1::]
print (sequence2)
 
Cool beans man.
 
I'm not a huge python guy myself, but I was thinking something like
for(k=0, sequence(k::k)!="one", k++){
print(sequence(k::k)
else print("zero")
}
This looks suspiciously like java though...
 
lol, I'm not eveen going to change that. :D
 
BiGyElLoWhAt said:
lol, I'm not eveen going to change that. :D
Hahah, thank you for trying to help, though. Really appreciate it, man!
 
acurate said:

Homework Statement


My professor wants us to program on Python, where we have a certain sequence, for example:
sequence = ("one", "two", "three", "four")
I need to replace one of the sequence elements (example: "one") with another element (example: instead of the word "one", I need to put "zero").

2. The attempt at a solution
I really have no idea how to do it, but I guess I have to start with.

sequence = ("one", "two", "three", "four")Do I need to use something like:

sequence [1 : : 2]

or something else?
Something else.
Given the definition you have above, the statement below will change the string at index 1 to the string "four".
Code:
sequence[1] = "four"
Note that indexes start at 0.

Edit: My lack of expertise in Python is showing. Defining a sequence as shown in the Attempt section above makes it a tuple, which is immutable. Defining a sequence as I did, with brackets, makes it a list, and mutable.
acurate said:
Would really appreciate if you guys would help.
I would appreciate even a hint or advice on which path to take to be able to write this.
 
Last edited:
Mark44 said:
Something else.
Given the definition you have above, the statement below will change the string at index 1 to the string "four".
Code:
sequence[1] = "four"
Note that indexes start at 0.

Well, no it won't. As written 'sequence' is a tuple. Tuples are immutable - you can't change them. To do something like that you'd need to change 'sequence' to a list - which is mutable.
 
  • #10
Dick said:
Well, no it won't. As written 'sequence' is a tuple. Tuples are immutable - you can't change them. To do something like that you'd need to change 'sequence' to a list - which is mutable.
@Dick, it worked for me. This is an exact cut-and-paste from my python session.
Python:
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> sequence = ["one", "two", "three"]
>>> sequence
['one', 'two', 'three']
>>> sequence[1] = "four"
>>> sequence
['one', 'four', 'three']
 
  • #11
Mark44 said:
@Dick, it worked for me. This is an exact cut-and-paste from my python session.
Python:
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> sequence = ["one", "two", "three"]
>>> sequence
['one', 'two', 'three']
>>> sequence[1] = "four"
>>> sequence
['one', 'four', 'three']

Sure. That's with 'sequence' a list. Try it with the tuple ('one','two','three').
 
  • #12
You're right, Dick. With parentheses, the sequence is immutable.
 

Similar threads

  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 9 ·
Replies
9
Views
4K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 43 ·
2
Replies
43
Views
7K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 9 ·
Replies
9
Views
2K