Tôi đang cố gắng kéo chữ cái đầu tiên của mỗi dòng trong một tệp, sau đó in các chữ cái đó vào một tệp mới. Tôi đang làm việc từng bước vì vậy tôi đã tạo mã có thể lấy chữ cái đầu tiên của mọi dòng, tuy nhiên, khi tôi thêm mã Nội dung. Có ai biết tại sao Loop của tôi không lặp đi lặp lại không? Hoặc có lẽ, là vấn đề mà nó lặp đi lặp lại nhưng không thêm đúng các chữ cái vào 'dòng'.
def secret2[m]:
infile = open[m, 'r']
text = infile.read[]
for line in text:
lines = text[0]
for i in range[len[text]]:
if text[i] == '\n':
lines += text[i+1]
print[lines]
return[lines]
m.close[]
Output:
>>> secret2['file.txt']
A
'A'
>>>
Đầu ra thích hợp sẽ là:
>>> secret2['file.txt']
'ALICE'
>>>
Hỏi ngày 27 tháng 4 năm 2016 lúc 3:36Apr 27, 2016 at 3:36
4
Mã của bạn đang lặp lại các ký tự thay vì các dòng. Bạn có thể in ký tự đầu tiên từ mỗi dòng với mã sau:
def secret2[m]:
with open[m] as infile:
print[''.join[line[0] for line in infile if line]]
Đã trả lời ngày 27 tháng 4 năm 2016 lúc 3:44Apr 27, 2016 at 3:44
Niemminiemminiemmi
16.8K7 Huy hiệu vàng34 Huy hiệu bạc41 Huy hiệu đồng7 gold badges34 silver badges41 bronze badges
Bạn muốn coi mỗi dòng là một dữ liệu duy nhất. Vì vậy, sử dụng readlines[]
thay vì
>>> secret2['file.txt']
A
'A'
>>>
0. Vì vậy, mã của bạn phảidef secret2[m]:
infile = open[m, 'r']
text = infile.readlines[]
for j in [text]:
print j[0]
Đã trả lời ngày 27 tháng 4 năm 2016 lúc 4:07Apr 27, 2016 at 4:07
mkhunmkhunmkHun
5.7334 Huy hiệu vàng34 Huy hiệu bạc76 Huy hiệu đồng4 gold badges34 silver badges76 bronze badges
Bạn có thể sử dụng điều này:
def get_1st_chr[your_file, id_line] :
with open[your_file] as f :
text_splitted = f.read[].splitlines[]
f.close[]
return text_splitted[id_line][0]
Hoặc, nếu bạn muốn tất cả các nhân vật dòng đầu tiên:
def get_1st_chr[your_file, nb_lines] :
with open[your_file] as f :
text_splitted = f.read[].splitlines[]
f.close[]
for i in range[nb_lines] :
print[text_splitted[[i][0]]
Bạn có thể thay thế
>>> secret2['file.txt']
A
'A'
>>>
1 bằng ID của nhân vật bạn muốn in tất nhiên.
Nốt ruồi Adrian
46.2K127 Huy hiệu vàng45 Huy hiệu bạc73 Huy hiệu đồng127 gold badges45 silver badges73 bronze badges
Đã trả lời ngày 7 tháng 4 năm 2021 lúc 20:01Apr 7, 2021 at 20:01
Để có được ký tự đầu tiên từ một chuỗi, chúng ta có thể sử dụng ký hiệu lát cắt
>>> secret2['file.txt']
A
'A'
>>>
2 bằng cách truyền >>> secret2['file.txt']
A
'A'
>>>
3 làm đối số.3 bắt đầu phạm vi từ đầu đến ký tự đầu tiên của chuỗi.>>> secret2['file.txt'] A 'A' >>>
Dưới đây là một ví dụ, nhận được ký tự đầu tiên
>>> secret2['file.txt']
A
'A'
>>>
5 từ một chuỗi đã cho.str = "Movie Theater"
firstCharacter = str[:1]
print [firstCharacter]
Output:
Tương tự, bạn cũng có thể sử dụng ký hiệu lát cắt để lấy số lượng ký tự
>>> secret2['file.txt']
A
'A'
>>>
6 đầu tiên từ một chuỗi.Trong ví dụ dưới đây, chúng tôi sẽ nhận được 2 ký tự đầu tiên từ một chuỗi nhất định.
str = "This is your house"
firstTwo = str[:2]
print [firstTwo]
Output:
Không thực sự biết làm thế nào để giải thích điều này. Nếu bạn đã thực hiện dự án Tiêu đề từ Python Sololearn. Kể từ khi readlines [] trả về danh sách các chuỗi từ một tệp, làm thế nào để tôi chỉ trích xuất các ký tự đầu tiên của mỗi 'mục danh sách'/phần tử.
LineOfString là một biến cho một giá trị chuỗi. Vì chuỗi là mảng của ký tự, bạn có thể truy cập các ký tự riêng lẻ bằng cách lập chỉ mục [sử dụng [n]] a_String = "hello" in
Jan Markus lemme thử điều này, cảm ơn
Sử dụng chức năng chia để thêm tất cả các từ vào một danh sách. Sau đó lặp lại thông qua tất cả các mục và in nhân vật đầu tiên của họ.
Vâng, một danh sách các chuỗi. Khi bạn phải tạo thành cùng một thao tác cùng nhiều lần, hãy sử dụng một vòng lặp.
Cảm ơn, nó đã làm việc Jan Markus
Universal Bạn có phiền để giải thích một chút về những gì dòng sản phẩm làm gì không?
Slick Now Thing is, Readlines sẽ trả về danh sách không phải chuỗi, vì vậy nếu tôi lập chỉ mục một danh sách như tên [n], nó sẽ trả về phần tử đầu tiên của danh sách và nếu tôi sử dụng tên [n] [i] nó sẽ trả về ký tự đầu tiên của Chỉ có mục đầu tiên, trong khi đó tôi muốn nó trả về các ký tự đầu tiên của tất cả các mục.