Pythonのお勉強 Part72

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ワッチョイ 03c5-hEBs)
垢版 |
2023/12/27(水) 15:42:25.63ID:sVIMH2iW0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
 ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/
※前スレ
Pythonのお勉強 Part71
https://mevius.5ch.net/test/read.cgi/tech/1695168821/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
801デフォルトの名無しさん (ワッチョイ be2a-gL2P)
垢版 |
2024/05/10(金) 17:50:44.59ID:D/Pzsr590
>>800
(word1 in str) or (word2 in str) or (word3 in str)
を、すっきり書きたいのですと。
2024/05/10(金) 18:31:25.49ID:oMx4R1JP0
list in str
を許容するように文法を変える
結果のリストが得られるので、
any(list in str)
みたいに使う
2024/05/10(金) 18:35:00.30ID:GFO3EFl80
and なのかor なのかは明示してくれ
804デフォルトの名無しさん (ワッチョイ 8b2c-ePh+)
垢版 |
2024/05/10(金) 18:40:17.35ID:AxWmaiK30
isinstance(word1, str)
805デフォルトの名無しさん (ワッチョイ 8b2c-ePh+)
垢版 |
2024/05/10(金) 18:47:36.75ID:AxWmaiK30
anyかallで>>804わたすのじゃだめなの?
806デフォルトの名無しさん (ブーイモ MM8a-c5DX)
垢版 |
2024/05/10(金) 18:50:16.41ID:doYTKqcMM
>>796
ここで言うstrって変数じゃなくて型か?
2024/05/10(金) 19:40:33.29ID:gpbnw0cs0
短くするより分かりやすくする方がよくないか
808デフォルトの名無しさん (ワッチョイ 8b71-0+0w)
垢版 |
2024/05/10(金) 21:21:08.00ID:AxWmaiK30
any([isinstance(x, str) for x in (word1, word2, word3)])
any(map(isinstance, (word1, word2, word3), [str]*3))
2024/05/10(金) 21:41:43.74ID:oMx4R1JP0
関数一つかますしか無いだろうな

def find_words(list, str):
 return [w in str for w in list]

print(any(find_words(['a', 'b'], 'bcde')))
2024/05/10(金) 21:41:47.92ID:I57YSXlo0
、pythonでWEBスクレイピングをしてるのですが、タスクスケジューラで動かすと画面が欠けます。
ログイン中だと問題なくでます。
なぜかサイズ指定しても効かないのですが、タスクスケジューラで登録して自動実行させてる方いませんでしょか?
2024/05/11(土) 00:19:43.68ID:Lq3Rg3RR0
>>810
「ユーザーがログオンしているかどうかに関わらず実行する」が選択された場合、
タスクはセッション0のデスクトップが無い環境で実行される(Vista以降)
通常のブラウザでイスクレイピングをしたければ適当なアカウントにログインしていなければならない
またはヘッドレスモードのあるブラウザなら動きそうではあるがどうだったかな
2024/05/11(土) 01:09:05.58ID:OjGtgcFx0
>>811
ありがとうございます。
ヘットレスモード試してみます。
まずはログインした状態でタスクスケジューラ起動とかが一番近道かもですね!
2024/05/11(土) 03:05:51.08ID:XZyyqECr0
>>796
s = set(str.split())
if {word1, word2, word3} & s != {}:
 ...
2024/05/11(土) 03:15:20.18ID:XZyyqECr0
>>796
ごめん間違えた
s = set(str.split())
if {word1, word2, word3} & s != set():
 ...
2024/05/11(土) 06:12:20.38ID:MOJftii60
配列のインデックスが1じゃなく0から始まる利点て?
2024/05/11(土) 07:40:03.89ID:6kJwwEnQ0
0の方がいろいろ合理的だけど、
printf(f'{count+1}')
とかやるよな

範囲を示す時に始点と終点よりも、始点と終点+1(次の要素の始点)の方が
便利なケースが圧倒的に多いけど、なんか怖いので愚直にやる
817デフォルトの名無しさん (ワッチョイ be2a-gL2P)
垢版 |
2024/05/11(土) 08:22:43.45ID:N2421kI80
>>813-814
スマソ、なんか Trueにならなくね?

>>> word1 = 'abc'
>>> word2 = 'def'
>>> word3 = 'ghi'
>>> sstr = 'aaabcddd'
>>> s = set(sstr.split())
>>> {word1, word2, word3} & s != set()
False
>>> s = set('zzzzzzz'.split())
>>> {word1, word2, word3} & s != set()
False
>>>
818デフォルトの名無しさん (ワッチョイ 177c-0EWD)
垢版 |
2024/05/11(土) 08:24:59.32ID:KSi13UAi0
>>815
Pythonって配列無いんじゃ?リストやろ

C言語系とかの配列的に添字が0から始まるのはメモリアドレスを計算する時に高速な為
2024/05/11(土) 09:00:38.69ID:yJym4BaO0
1. {'sss'}.issubset({'s', 'ss', 'sst'})

2.
strings = ('miss')
ret = any([s for s in ('s', 'ss', 'ss') if s in strings])

3. filter(lambda s=s: s in strings, strings)

4.
strings = ('ss', )
is_in = strings in ('s', 'ss', 'sss')
820デフォルトの名無しさん (ワッチョイ 37ca-ePh+)
垢版 |
2024/05/11(土) 11:03:50.73ID:6E9A5zBq0
strって関数オブジェクトじゃないの?
821デフォルトの名無しさん (ワッチョイ ea83-Np3+)
垢版 |
2024/05/11(土) 11:33:01.51ID:gV6TyhSc0
ヒント
画像情報 テレポート
エネルギー 瞬間にどう
観測結果論部あり
※情報とエネルギーを送れるのなら任意の波と線とHzを任意の場所で発生可能

上記の技術に脳内インプラントデータを対象者全身に送信で操り人形
地球外宇宙人もサイコパスが使用中

高度な科学を使用できていても自然環境も人間社会いも狡猾な者【人間を物として見る者】が圧勝
ガスライティング.ギャングストーカー.電磁波攻撃 等
現在の若者サイコパスで無い者は何%いるのかな?

地球派【マイクロ波聴覚効果】は違法でないので宇宙人が行っていても合法
別の惑星はテロに該当なので問答無用で戦争

マイクロ波は波の種類なので
X線でマイクロ波を起こしているので
お前に200回のx線を打ち込んだも理解できるでしょう
※5Gはミリ波で動的動作も追跡可能になるのでマイクロ波より便利
テラヘルツ波はミリ波と比べて現在不明なので研究中

何Hzの帯域は対象者周囲の状況に応じて変化していると思われるので
線種類 + 波種類 + 何hz + 使用w数 = 音波【音の高さ】?
2024/05/11(土) 11:47:23.04ID:6kJwwEnQ0
requests.get() したものに対して、
<meta charset= の内容を見てencodingを設定してくれる機能ってある?
2024/05/11(土) 12:21:55.32ID:XZyyqECr0
>>817
その条件では使えない
英文みたいに空白で単語が区切られている時に使える
部分一致はsuffix arrayみたいな重く複雑なsetが必要
ひょっとしたら何かエレガントな書き方があるのかもしれないが
824デフォルトの名無しさん (ワッチョイ 7e44-c5DX)
垢版 |
2024/05/11(土) 13:44:37.23ID:dlaw+38P0
>>822
まずdecodeしないでmeta見れるの?
2024/05/11(土) 16:52:01.34ID:MOJftii60
>>816 >>818
おk
2024/05/11(土) 16:57:44.24ID:6kJwwEnQ0
apparent_encoding にするといいよという記事をよく見るけど、
encodingに困ってる時にapparent_encoding使うと悪化する
困ってない時は何もしなくていい
結局使い所が無い
2024/05/11(土) 17:02:27.88ID:7DA564Sp0
>>818
高級言語なのにそこにつっこむセンス
速度に影響するから知っておいても損はないけども
むしろ内部実装でいうとlistは配列ちがう?
828デフォルトの名無しさん (ワッチョイ 7e44-c5DX)
垢版 |
2024/05/11(土) 17:32:49.96ID:dlaw+38P0
>>826
エンコーディングの推論って日本語だとうまく機能しないよな
結局決め打ちして試すしかない
2024/05/11(土) 17:55:41.08ID:6kJwwEnQ0
決め打ちしなくても、meta読めばそれが正解なんだよな
答えが書いてあるのに推測しようとして失敗する
830デフォルトの名無しさん (ワッチョイ 2bd0-2p88)
垢版 |
2024/05/12(日) 01:03:35.51ID:sYFXlqml0
charsetに嘘書いてある事もあるから
metaは参考程度
2024/05/12(日) 03:16:25.45ID:blI7TU//0
>>827
なんで配列がリストと同様だと思ったん?
2024/05/12(日) 03:47:45.56ID:sQadkg9O0
>>831
https://github.com/python/cpython/blob/main/Objects%2Flistobject.c
2024/05/12(日) 15:32:32.50ID:qUDonbHH0
「動的配列は配列じゃないリストだ」と言い張る人なんじゃね?
それか何か根本的な勘違いをしてるか

まあどうでもいいけど
2024/05/12(日) 15:44:47.38ID:H0ypy+dK0
その辺の言葉の使い方は言語や人や実装によって違うからまずは定義をちゃんとして欲しいな
2024/05/12(日) 15:47:15.87ID:DQpWxQ2J0
言語も何も指定せずにプログラム関連でリストというと、リスト構造を指すよな
836デフォルトの名無しさん (ワッチョイ 557c-06YP)
垢版 |
2024/05/12(日) 15:49:04.86ID:jPmIOKVf0
基本情報も持ってないような奴はその辺のデータ構造としての配列とかリスト分かってないんだろ
2024/05/12(日) 15:51:41.09ID:H0ypy+dK0
大抵はリンクリストを指すのだろうけど動的言語あたりが好き勝手用語を解釈し始めて
動的配列を指すこともあるし一般的にモノが並んでいることをリストと言ったりもする
ややこしい時代になったもんだ
2024/05/12(日) 18:01:26.30ID:XuEaHJPQ0
データ構造に言及しない文脈なら一般的に一覧とかリストで済ますでしょ
PythonスレはVBAスレに並ぶ初心者が集うスレだからこんな議論が度々起きても仕方ない
839デフォルトの名無しさん (ワッチョイ 7568-sqPz)
垢版 |
2024/05/12(日) 19:15:29.77ID:TeUsEGsc0
ごくごく一般的な言葉を環境特有の用語として使う馬鹿が悪い
2024/05/12(日) 19:35:34.27ID:DQpWxQ2J0
数学なんかそんなんばっかり
わざとだろと思うくらい
2024/05/12(日) 21:39:13.62ID:qUDonbHH0
赤っ恥かいた人の自演言い訳レスばっかりで草
842デフォルトの名無しさん (ワッチョイ 7568-sqPz)
垢版 |
2024/05/13(月) 02:42:21.97ID:4H4E5Igk0
俺の投稿GW以降初なんだが馬鹿の自演言い訳扱いにされてんの?
843 警備員[Lv.1][新初] (ブーイモ MMb3-7UPu)
垢版 |
2024/05/13(月) 19:42:10.18ID:FIEerBn6M
>>833
配列そのものが連続したアドレスのメモリ領域のことだからな

動的にメモリを確保する場合は、型が後づけになるから配列と呼ぶの違和感があるのは仕方ない
2024/05/13(月) 20:27:48.60ID:qI7rp+/ud
サイズ決めてからリスト作ったら
内部データは1つの配列?
それとも1つ1つ個別のリンクリスト?
2024/05/13(月) 20:53:26.29ID:Vgw5tAUB0
そういうのはnumpyなんだよな
2024/05/13(月) 22:15:15.85ID:2RX7d+Cx0
>>843
>配列そのものが連続したアドレスのメモリ領域のことだからな
何を主張したいのかよくわからん
Pythonのlistは配列じゃないと言いたいの? それとも配列だと言いたいの?

>動的にメモリを確保する場合は、型が後づけになるから配列と呼ぶの違和感があるのは仕方ない
動的にメモリを確保することと型が後付になるかどうかは関係ないよ
2024/05/13(月) 22:22:23.19ID:Vgw5tAUB0
メモリなんかいつでも好きな時に確保できるように見えるだけで、
実際はmallocで頑張って実現してるしな

思想は先進化していくのに実現手段はずっとCなので、
職人がどんどんハゲる
848デフォルトの名無しさん (ワッチョイ 312a-qYA6)
垢版 |
2024/05/14(火) 08:46:28.42ID:qHkm4M1L0
結局 >>839 だよな。お前の言う「配列」はどれなんだってな。
2024/05/14(火) 09:10:15.76ID:KCRt/7OV0
「環境特有の用語」として使ってるやつなんていないだろ
2024/05/14(火) 11:55:04.88ID:tAOIV1Ky0
発端はこれ
>Pythonって配列無いんじゃ?リストやろ

書き方から配列ではない”リスト”、リストではない”配列”について述べてることは自明
つまり抽象データ構造としてのリストを指してるわけではなく、その具体的実装のうち配列ではないもの(リンクリスト等)を指しているか、Pythonのlist(リスト型)を指していることになる

次にこれ
>なんで配列がリストと同様だと思ったん?

これはlistの内部実装が配列だというレスへの返信内容なので、発端となったレスと合わせるとlistがリンクリスト的なもので実装されてると勘違いしてたということ

同じ勘違いをしてると思われ、かつ同じように二言目にはCに言及してるレスが散見されるのは偶然ではないでしょう
2024/05/14(火) 12:27:50.27ID:zAEMfD8m0
トートロジーなんだよな
中身のアドレスが規則的に並んでいるものを配列と呼ぶ
と定義すれば、配列はアドレスが規則的に並んでいる

自分の定義に疑問を持つような文章を書くから、
知らんがなお前の脳内にしか答えはねえよになる
852デフォルトの名無しさん (ワッチョイ 5b18-Hnix)
垢版 |
2024/05/14(火) 14:39:54.11ID:8mNAgpzV0
python変化目まぐるしくて追いつくのがしんどすぎる....
最先端のpythonライブラリのポータルサイトとかないの?
毎日確認したいわ
本でkeras、tensorflowとか必死で習得(完璧ではない)したのに
今はpytorchも主流らしいね
こんなの追いつくの大変だわ
webとpythonは本当に頭がスポンジじゃないと無理だわ
2024/05/14(火) 15:55:30.69ID:B5OwFMM40
>>852
https://pypi.org/

だいたいのライブラリはGitHubでプロジェクトつくってるから
バグやリリース前の情報を追いたいならissuesをみる
2024/05/14(火) 15:56:53.18ID:mAhB2AWP0
>>852
pytorchも生で使う人はいないぞ
transformersというpytorchを使いやすくしたライブラリしか使われてない
まあそれも計算資源がある会社や組織しか無理だけど
日本向けにCPUでうまく学習できるライブラリ作れよって思うけどね
スパコンはあるわけだし
もう作れる技術ある人がいないのだろう
悲しいなあ
855デフォルトの名無しさん (ワッチョイ 5b18-Hnix)
垢版 |
2024/05/14(火) 17:17:20.85ID:8mNAgpzV0
>>853
見方がわからんw
>>854
人工知能のアルゴリズム組めるってそこそこ優秀で大学院レベルだと
思うんだよね
javaとかだとベテランが大量にいるだろうけど
それってjavaの取り巻く環境と文法についてのベテランであって

pythonのベテランっていうともろに数理科学に精通した人達だから
地頭レベルでいい人なんだろうな

もしかして独学は途方もない挑戦なのかも
2024/05/14(火) 17:44:51.87ID:mAhB2AWP0
>>855
昔はライブラリなんてなかったし
どんな分野でも大企業の人間とか研究室の教授とかが作ってたんだよなあ
2024/05/14(火) 18:36:12.11ID:Q7kDAF5x0
>>851
>トートロジーなんだよな
>中身のアドレスが規則的に並んでいるものを配列と呼ぶ
>と定義すれば、配列はアドレスが規則的に並んでいる
またまた>>843と同じで何を主張したいかわからん文章だけど
結局Pythonのlistは俺の定義する配列ではないということ?
2024/05/14(火) 20:39:34.27ID:zAEMfD8m0
AIはいい方法が見つかって、あとは規模を拡大していくだけじゃないの
その先に強いAIもあるよ
2024/05/14(火) 21:25:34.15ID:mAhB2AWP0
>>857
トートロジー言いたいだけ
2024/05/14(火) 22:22:59.43ID:ijGZFbN80
循環定義と言いたかったんじゃね?
循環してないから的外れだけど
2024/05/14(火) 22:50:26.75ID:W7JQzi5C0
>>860
循環してないならトートロジーで合ってるのでは
2024/05/14(火) 23:30:34.98ID:ijGZFbN80
>>861
もちろん合ってない
哲学板ででも聞いてくれば?
そんな板があるのか知らんけど
2024/05/15(水) 02:04:38.50ID:CiUrAQCg0
>>855
PHP の本を書いている、たにぐちまこともPython の動画を出そうとしたけど、
大学で勉強しないと無理と言っていた

KENTA が既に言っている。
理系で、8年も掛けて勉強するのは効率が悪い。
何年も勉強する看護師とかもそう

文系のアホが唯一金持ちになれる、最強のチート職業はRuby on Rails である!
Runteq の菊本も、千時間と言っている。
外人も言っている

Railsでは頭の良さが必要ではなく、再現性が高い。
東大受験と同じ。
アホでも3千時間の暗記で、偏差値が40上がる。
75時間で1偏差値上がる

だから、ほとんどの学校・サロンではRailsを教える。
知識が勉強時間に比例するから。
東大向け予備校と同じ

一方、Pythonは大学院数学科とか、地頭の良さが問われる。
文法を知っていても雇われない。
全言語の中で唯一、人余りの言語だし

文系なら絶対に無理。
理系で偏差値70以上なら独学でもできるだろうけど

Java は建設業と同じ、5大SIer の多重請負構造の身分制度があるから、
間に1社入る毎に、3割抜かれる。
絶対に大企業系列での身分が変わらないから、
一発逆転を狙うdrop out 組は、Railsへ進む
864デフォルトの名無しさん (ブーイモ MM5b-2p88)
垢版 |
2024/05/15(水) 09:28:02.91ID:lY8yWo0EM
理系で偏差値70医学部だろ
2024/05/15(水) 09:51:34.33ID:B4c3/ooh0
医者が難しい積分とかできてどうするんだろうな
866デフォルトの名無しさん ころころ (ワッチョイ 5b95-Hnix)
垢版 |
2024/05/15(水) 10:23:20.15ID:S+ZupDQm0
東大数学も難なく解けるような人間だとpython+人工知能も余裕なんだろうな
高卒にプログラマかなり多いけど彼らは人工知能理解できるのだろうか?

確率過程、解析学、線形代数など大学数学レベルの応用なわけだが
2024/05/15(水) 10:30:56.53ID:B4c3/ooh0
建築現場の労働者が強度計算できるのか心配してるようなもの
2024/05/15(水) 13:16:40.50ID:aVLImmd00
独学で学習したが動かせるようになるまで2.5年かかった
理解できているかは、分野や扱い方次第でどうとでも言えるかと
人工知能という単語が広すぎるので
何の何でどのモデルをどの手法でどうやってトレーニングして、何をできるようにしたことがあって、何に適用したことがあるか?
位まで説明してくれないとわからない
2024/05/15(水) 13:37:58.79ID:aVLImmd00
マクドに行ってハンバーガーくださいと言っているのと変わらないということ
870 警備員[Lv.6][新初] (ワッチョイ 7b5f-7UPu)
垢版 |
2024/05/15(水) 21:54:52.51ID:QNLWEWL40
>>846
動的に確保したメモリ領域を1バイト単位の変数からおかしくないが、可変のマルチバイトの型にすると物理アドレスで追えなくなる。
871 警備員[Lv.6][新初] (ワッチョイ 7b5f-7UPu)
垢版 |
2024/05/15(水) 21:59:14.32ID:QNLWEWL40
Pythonは一般的にコレクションにあたるものが独特の定義と変な構文・命令文で操作するから、素直な配列をリストと言う名称にして、配列とも呼ぶということにしたせいでわかりにくくなった。

配列は連続したメモリ領域という意味合いがあるが、Pythonは完全に無視しているので、初心者にはハードルが高い。
2024/05/15(水) 22:33:27.30ID:5dHp99TT0
変にかじってるから連結リストを連想するんでは
シンプルに一覧、複数の要素を含むデータ構造ってだけ
2024/05/15(水) 22:35:29.17ID:B4c3/ooh0
arrayで良かったがな
2024/05/15(水) 23:48:19.33ID:heFIaB2P0
>>871,872
配列の領域を動的に拡張する動的配列の話と
ヒープというか1つの配列で複数の型の値を管理する話がごちゃ混ぜになってたのね

動的配列であるPythonのlistも連続したメモリ領域(内部はCのarray)
先頭アドレス+インデックスでインデックス番目の要素にO(1)でアクセス可能
連続メモリ領域である配列に型の異なる要素を入れられるのは
PyObjectというオブジェクトへのポインタを格納してる配列だから

intやfloatを格納してもポインタの間接参照が必ず入るので
それを必要としないarray.arrayやndarrayに比べるとシーケンシャルスキャンなどは遅い
2024/05/15(水) 23:50:58.58ID:B4c3/ooh0
なんでappendした時のアドレスは最初から空いてるんだ?
2024/05/15(水) 23:59:39.16ID:heFIaB2P0
動的配列(dynamic array)とか可変長配列(variable length array)でググってください
2024/05/16(木) 02:28:34.83ID:GRjs/TRy0
>>874
それは実装の瑣末な問題
ポインタに整数を埋め込んでいるrubyやv8などもある
2024/05/16(木) 09:01:52.97ID:OT19dHrs0
アスペおじさんw
2024/05/17(金) 09:14:14.67ID:rqZM+dIga
test
2024/05/17(金) 09:15:28.47ID:rqZM+dIga
>>866
Stack Overflow 米国年収。2022 -> 2023。
Rubyは、Go/Rust/Elixir の3大言語を超えた!

Ruby : 9.3 -> 9.9 万ドル
Elixir : 9.3 -> 9.6
Go : 8.9 -> 9.3
Rust : 8.7 -> 8.7

多くの言語 : 6.5〜7 -> 7.3〜7.8

PHP : 5 -> 5.9
Dart : 4.4 -> 5.6

プログラマーは、大卒コンピューターサイエンスが必須。
ただし、PHP, Dart だけは高卒用言語だから低収入。
だから、高卒で人工知能などをやっている香具師はいないはず

TIOBE Index 2024/4 では、
PHPは、9位 → 17。
一方、Ruby は、18 → 13

2019年「滅びゆく5つのプログラミング言語」として、
Ruby, Haskell, Objective-C, R, Perl の記事が出たけど、
実はRubyよりも、PHPの方が先に滅んでしまった

KENTA も、PHPをオワコン認定した。
そして初心者のキャリアパスは、Rails → Go のみと言う
2024/05/17(金) 09:47:04.55ID:Qa4vCMDK0
滅ぶ為には一度栄える必要があるからな
滅ぶことすらできない言語が死屍累々
2024/05/18(土) 11:03:18.54ID:PjF8WCX10
str.replaceとre.subがどっちがどっちだったか覚えられません
883 警備員[Lv.29] (ワッチョイ 7ae7-e3iQ)
垢版 |
2024/05/19(日) 20:02:36.67ID:j/RUVR5T0
>>874
知識がないようだけど、配列はすべて参照型というわけではない。

同じバイト数のデータ型なら、連続の領域を使う。
動的メモリ確保をして、メモリの断片化をさせる実装はあまりに無駄が多い。
2024/05/19(日) 20:20:55.34ID:yPlDr+Sl0
RAMがハード的に仮想アドレスを持てるようにすれば、
ソフトが断片化とか気にしなくてよくなるな
2024/05/19(日) 21:43:05.64ID:Mnae9rHQ0
CPUにMMUが追加されたかなり昔からOSが似たようなことをしているわけで
886デフォルトの名無しさん (ワッチョイ df7c-6G0y)
垢版 |
2024/05/19(日) 22:10:48.54ID:Bt2ug4Wx0
>>883
何言ってんだ?
全て参照だぞ

>同じバイト数のデータ型なら、連続の領域を使う。

これもデータをメモリに格納する話
先頭アドレスだけ解ればデータ型のビット数で算出出来るでしょ
887デフォルトの名無しさん (ワッチョイ df7c-6G0y)
垢版 |
2024/05/19(日) 22:11:43.39ID:Bt2ug4Wx0
スタックとかヒープ解ってない奴多過ぎ
2024/05/19(日) 23:42:12.30ID:BsbbAZea0
ちんちんシュッシュッ
>>886
pythonはレジスタ長では
2024/05/19(日) 23:42:34.77ID:BsbbAZea0
誤爆してるやないか
2024/05/20(月) 12:49:55.53ID:3W+i4yLz0
>>883
全参照なのでそこは間違い
連続になるのはcで連続に扱ったほうが高速に動くように改善されたデータ型だけで
必ず連続になるわけではないよ
2024/05/20(月) 12:50:47.46ID:3W+i4yLz0
それが何かというと
教えられないんだよな
2024/05/20(月) 12:51:13.63ID:3W+i4yLz0
ふう、ケツがヒヤッとした
2024/05/20(月) 14:41:24.00ID:3hdkulJY0
>>890
>連続になるのはcで連続に扱ったほうが高速に動くように改善されたデータ型だけで
Pythonのlistにそんな最適化はされてなくない?
2024/05/20(月) 14:51:57.23ID:r4ONNAiJ0
何故appendするとappend後のものを返すんじゃなくて元データが変更されるのか
2024/05/20(月) 18:02:45.08ID:53Qyo6js0
>>893
>>832のソース見てもわかるようにそういう機能は無いね

>>894
appendは何も返さない
新しいlistを生成して返すのではなく
元のlistをmutateするのはそのほうが効率がいいから
2024/05/20(月) 18:38:10.23ID:53Qyo6js0
>同じバイト数のデータ型なら、連続の領域を使う。
「連続領域を使う」というのは「配列の中身がポインタじゃなく実データになる」という意味なんだろうけどバイト数が同じかどうかで判断したりはしないでしょ
少なくともndarrayやarray.arrayはそういう実装にはなってない

他の言語の話だとしてもバイト数で判断する実装というのは聞いたことがない
2024/05/20(月) 18:48:16.70ID:r4ONNAiJ0
読んでないけど、普通に実装したらポインタの配列にするのでは
898デフォルトの名無しさん (ブーイモ MMb6-ETG5)
垢版 |
2024/05/20(月) 18:51:43.87ID:ptqDWmWTM
array型すら中身はポインタだろ
値を直接突っ込む意味がない
2024/05/20(月) 19:17:25.12ID:r4ONNAiJ0
pythonで扱う対象は全てオブジェクトです
というのは、高級なことを言ってる訳でもなくて、
全部ポインタで管理してるというだけの意味なんだよな

数字の1を入れたいと思っても、
0x01とか0x00000001を直接入れずにその実体は別にあってそのポインタを入れる
900デフォルトの名無しさん (ワッチョイ 9768-DmKs)
垢版 |
2024/05/20(月) 21:15:13.12ID:kb+bQ0Uz0
ぬるぽ
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況