外部テキストファイルtesttext.txtからリストsearch_wordを作り、search_wordの内容を特定数出力、出力した値を削除した後に残りの数字を再度特定数出力というプログラムを作りたいのですが、str型にするとスライシングが上手くいかず困っています。[0:2]の指定をしているにも関わらず1~10すべての数字が出力されてしまいます。
python
1コード 2# -*- coding: UTF-8 -*- 3 4import time 5import pyperclip 6from selenium import webdriver 7from selenium.webdriver.common.keys import Keys 8from selenium.webdriver.chrome.options import Options 9from selenium.webdriver.support.ui import WebDriverWait 10from selenium.webdriver.support import expected_conditions as EC 11 12f = open(r"C:\Users\user\Desktop\testtext.txt", "r") # IDファイルを読み込み 13search_word = f.read().split('\n') # ファイルの中身を変数IDへ 14f.close() # ファイルを閉じる 15 16print (search_word) 17print(type(search_word)) 18#結果 19['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] 20<class 'list'> 21 22for i in search_word: 23 print (i[0:2]) 24#結果 251 262 273 284 295 306 317 328 339 3410 35 36print(type(i)) 37#結果 38<class 'list'> 39 40del search_word [0:2] 41 42 43print (search_word) 44print(type(search_word)) 45#結果 46['3', '4', '5', '6', '7', '8', '9', '10'] 47<class 'list'> 48 49 50for i in search_word: 51 print (i[0:2]) 52# 結果 533 544 555 566 577 588 599 6010 61 62print(type(i)) 63# 結果 64<class 'str'>
試しに
for i in search_word:
print (i[0:2])
を
for search_word in range(2):
print (search_word)
に変更してみたところ、出力結果はスライシングされた結果でしたが、search_wordの型がint型になってしまいdelがエラーとなってしまいます。
for i in search_word:
print (i[0:2])
に対して適切にスライシングをする方法、またはsearch_wordに対してrange関数を使った場合、型をlist型のまま保持する方法が有りましたらご教示お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/21 07:14